如何在输入更改值时在Javascript中调用函数?

时间:2014-11-18 13:16:39

标签: javascript jquery ajax

当输入类型文本xxx更改值时,如何调用函数id="username"

首先,将数据填入

<input type="text" name="thingy" onkeypress="updateInput(this.value)" onkeyup="updateInput(this.value)" />

然后是数据

<input type="text" name="thingy" onkeypress="updateInput(this.value)" onkeyup="updateInput(this.value)" />

会改变价值。

好的,当输入name="thingy"更改我想调用函数xxx时,我尝试使用此代码但不起作用。

我该怎么做?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function updateInput(ish){
    document.getElementById("username").value = ish;
}
</script>
<form id="main_fid">
    input1 : <input type="text" name="thingy" onkeypress="updateInput(this.value)" onkeyup="updateInput(this.value)" /> 
    <span id="mySpan"></span>
    <input type="submit" value="OK"/>
</form>


<script>
function xxx() {
        $.ajax
        (
            {
                url: 'other.php',
                type: 'POST',
                data: $('#username_send_value_fid').serialize(),
                cache: false,
                success: function (data) {
                    $('#mySpan').show();
                    $('#mySpan').html(data);
                }
            }
        )
}
</script>
<br>
<form id="username_send_value_fid">
    input2 : <input type="text" name="username" id="username" onchange="xxx()" readonly/>  
</form>

2 个答案:

答案 0 :(得分:0)

$("#username").on( "change", handler )

或简称

$("#username").change( handler )

并删除内联onchange属性。您还需要将代码包装在ready function

$(document).ready(function(){
   $("#username").change( handler )
});

http://api.jquery.com/change/

在仔细阅读问题后添加:

如果您想将input name="thingy"username关联,可以执行以下操作:

$('input[name="thingy"]').change(function(){
    $("#username").val( $(this).val() ).trigger('change');
});

这将更新username的值,然后触发更改事件,就像用户输入了输入一样。

但是,如果你想要完成的是验证输入的唯一性,那么就没有理由跳过这么多的箍 - 直接从username更改事件调用你的ajax处理程序。

答案 1 :(得分:0)

我认为在&#34; onchange&#34;上调用xxx()事件或updateInput(ish)内部将产生相同的效果。

尝试

function updateInput(ish){
  document.getElementById("username").value = ish;
  xxx();
}