2016-03-30 14 views
-2

Ben html gelen metin kutusu için bir .js dosyasından oluşturulduğu html - javascript'ten.javascript'te document.getElementsByClassName ('myTxtBox') öğesinden nasıl değer alınır?

<input type='text' class='myTxtBox editable' name='myTxtBox' value='' maxlength='200' size='90'/> 
.... 

ben şöyle ben myTxtBox girmek değerini almak için deneyin: Bir ClassName ile tanımlanır ben myTxtBox içine girmek değeri almak için bu denedi

var txtval = document.getElementsByClassName('myTxtBox'); 
alert(txtval); 
...more stuff where I set a breakpoint 

uyarı ben diyor [object htmlcollection]

intellisense bana vermez .value - Sadece txtVal.valueOf alıyorum, ancak kodun içine girdiğimde ve txtval üzerinde gezindiğimde,> Methods, ...,> myTxtBox için bir liste alıyorum . > MyTxtBox listesini genişletdiğimde, bu listenin altına kaydırırsam, "myTxtBox" listesinde "value" değerini görüyorum ve web sayfasında girdiğim şeyi DOĞRUYORUM.

Bu değeri nasıl alabilirim? Ben intellisense gelen her türlü seçenekleri denedim, ancak bu uyarı bir hata msg veya [object htmlcollection] verir. Girdiğim değeri nasıl alabilirim? Veya - senaryo için document.getElementsByClassName ('myTxtBox') 'dan farklı bir şey kullanır mıyım?

+1

Muhtemel yinelenen [getElementsByClassName dönüşü nedir?] (Http://stackoverflow.com/questions/10693845/what-does-getelementsbyclassname-return) –

cevap

0

getElementsByClassName, dizi gibi bir HtmlCollection döndürür. Böyle yapın:

var txtval = document.getElementsByClassName('myTxtBox')[0].value 
alert(txtval) 
+2

Bu, dizi gibi bir HtmlCollection döndürür. – epascarello

+0

@epascarello teşekkürler :) – thangngoc89

+0

zaten bunu denedi, ve işe yaramadı - Ben sadece intellisense ve yanlış mesaj üzerinde valueOf olsun. Ama değerin orada olduğunu biliyorum çünkü kodun içine adım attığımda ve txtval'in tüm listelerine baktığımda görebiliyorum. Html, web uygulamasında bir ascx kullanıcı denetiminde başvurulan bu js dosyasında javascript tarafından oluşturulur. –

0

Sen getElementsByClassName olarak indeksini + değer döndürmek gerekir bunun için birçok unsur vardır, böylece bir HtmlCollection döndürür .. bu deneyin:

var val = document.getElementsByClassName('myTxtBox')[0].value 
alert(val) 
+0

Zaten denenmiş var val = document.getElementsByClassName ('myTxtBox ') [0] .value ---- intellisense ile ilgili tüm değerler valueOf'dur ve uygulamayı çalıştırdığımda (asp.net), uyarıdan veya [object htmlcollection] hata iletisinden bir hata mesajı alırım –

0

Elimde keşfetti istenilen değerini almak için benim giriş öğesinin 'myTxtBox' ve kullanım jQuery bir kimlik eklemem, bu yüzden bu yaptı - bir document.getElementById

//--generate the html section here 
"...<input type='text' class='myTxttBox editable datepicker' id='myTxtBox' name='myTxtBox' value='' size='10'/>..." 

function NextButton_Click() 
{ 
    try 
    { 
     alert($("#PositionStartDateTextBox").val()); <---and this displays the value entered into this textbox 
.... 

yapmak uyarısında metin kutusu ve kullanım jQuery bir kimlik eklendiTüm anlaşma, kullanıcıların manuel olarak değer girebilmeleri nedeniyle bazı tarih metin kutularını değerlendirmem gerekiyor. Bu metin kutusunun düzenlenebilir olmaması için en iyi düzeltmenin olacağını tahmin ediyorum. Başka bir soru olurdu - bir tarihçer nasıl eklenir ve düzenlenebilir bir metin kutusu yoktur.

İlgili konular