如果值已预先获取,则获取输入值

时间:2013-05-20 12:16:18

标签: javascript html

这使我返回输入的原始值而不是编辑的输入值。

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

on oncha上的js事件

我现在就这样,我没有得到它的输入......

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);
                    }
                }
            };

3 个答案:

答案 0 :(得分:0)

你可以这样做

HTML

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

JS

function dostuff(s) {

    alert(s.value);

}

这是一个fiddle

如果这不适合您的情况,请告诉我们您如何将问题中的js代码与html代码中的输入绑定。

答案 1 :(得分: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,我认为这符合您的需求。

答案 2 :(得分:0)

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

function dostuff(value) {    
    alert(value);    
}