2013-05-20 8 views
0

Это возвращает исходное значение ввода, а не отредактированное.Получить входное значение, если значения предварительно заданы

<input type='text' value='test'> 
this.parentNode.getElementsByTagName('input')[0].value 

, ИС событие на onchage

Я его, как это прямо сейчас, и я не получаю ввод этого ...

var inputs=document.getElementById('wrap').getElementsByTagName('input'); 
     for (var i = inputs.length - 1; i >= 0; i--) { 
      inputs[i].onchange=function(){ 
       var x=this.parentNode.appendChild(document.createElement("a")); 
       x.innerHTML="upravit"; 
       x.onclick=function(){ 
        var hr = new XMLHttpRequest(); 
        console.log(this.parentNode.getElementsByTagName('input')[0].value);  

Даже console.log сама дает мне обратно значение по умолчанию вместо нового ...

     var vars = "menu=1&name="; 
         hr.open("POST", "Ajax/UpdateCategory.php", true); 
         hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
         hr.onreadystatechange = function(){ 
          if(hr.readyState==4&&hr.status==200){ 
           var return_data = hr.responseText; 
           if(return_data!="ok"){ 
            alert(return_data); 
           } 
          } 
         } 
      hr.send(vars); 
        } 
       } 
      }; 
+0

Вы можете определить целостность 'onchange()'? –

+0

Что вы хотите? Опишите больше. –

+0

Мне нужно получить измененное значение ввода, когда я нажимаю на рядом с ним – Akxe

ответ

0

Пожалуйста, попробуйте эту демонстрацию, чтобы узнать OnChange обработчика: http://www.w3school.com.cn/tiy/t.asp?f=hdom_onchange

и сравнить с этой демонстрацией: http://www.w3school.com.cn/tiy/t.asp?f=hdom_onkeyup

Тогда вы будете знать, что, просто использовать OnKeyUp() вместо этого будет работать.

=== отредактирован содержание === HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <script> 
     window.onload = function() { 
      var inputs=document.getElementById('wrap').getElementsByTagName('input'); 
      var x=document.createElement("a"); 
      var data; 
      x.innerHTML="upravit"; 
      x.onclick=function(){ 
       alert(data); 
      } 
      for (var i = inputs.length - 1; i >= 0; i--) { 
       inputs[i].onchange=function(){ 
        this.parentNode.appendChild(x); 
        data = this.value; 
       } 
      } 
     }; 
    </script> 
</head> 
<body> 
<div id="wrap"> 
    <input type='text'> 
    <input type='text'> 
    <input type='text'> 
</div> 
</body> 
</html> 

Пожалуйста, запустите этот HTML в локальной среде, я думаю, что это удовлетворить ваши потребности.

+0

Мне нужно использовать onchange, он работает намного лучше в моей проблеме – Akxe

+0

Я отредактировал свои комментарии здесь, этот код поможет вам. –

0

вы можете сделать, как этот

HTML

<input type='text' value='test' onchange="dostuff(this)" /> 

JS

function dostuff(s) { 

    alert(s.value); 

} 

вот fiddle

Если это не устраивает ваше дело, расскажите, пожалуйста, как вы связывании код JS в вашем вопросе с вход в html-код.

0
<input type='text' value='test' onchange="dostuff(this.value)" /> 

function dostuff(value) {  
    alert(value);  
} 
Смежные вопросы