为每个表单输入调用jQuery函数

时间:2014-09-06 22:37:17

标签: javascript jquery

我目前正在使用http://jsfiddle.net/NvynC/663/处找到的代码,除了一件事情外,它的效果很好......

此代码触发小提琴中显示的resizeInput()函数...

$('input[type="text"]')
    // event handler
    .keyup(resizeInput)
    // resize on page load
    .each(resizeInput);

它会在页面首次加载时触发它,并在每个“keyup”上再次触发,但我添加了一些额外的代码,根据其他字段中更改的值更新各种文本字段。我很困惑,在我需要时,在给定时间调整所有字段的代码是什么。

以下代码不是我正在使用的代码,而是简单的事情,如果你能告诉我如果我以下面的方式调用它将使用什么代码,我将能够弄清楚如何将它放入我的实际代码......

function resize_fields()
{
    // WHAT CODE GOES HERE ????
}
resize_fields();

更新,让您更好地了解我在做什么......

这是我用的代码...... 以我的形式......

<select name="user" id="user" onchange=update_user_fields(this.value)>
    <option></option>

    

...脚本

<script>
    function update_user_fields(id)
    {
        user[id]();
    }

    user[<?php echo $user->ID; ?>] = function()
    {
        // I do a bunch of field value changes here and they work perfectly
        // ///////
        // What I do not know is how to call the resizeInput function referred to in the fiddle above
        // ///////
    }


</script>

我尝试将以下代码放在我错过代码的上一节中,但它不起作用!

jQuery(function($) {
    $('input[type="text"]')
        // resize all
        .each(resizeInput);
});

事实证明我有一个厚厚的头骨......毕竟下面的答案是正确的..这是工作代码......

<select name="user" id="user" onchange=update_user_fields(this.value)>
    <option></option>

    

...脚本

<script>
    function update_user_fields(id)
    {
        user[id]();
    }

    user[<?php echo $user->ID; ?>] = function()
    {
        // I do a bunch of field value changes here and they work perfectly

        // ///////
        jQuery(function($) {
            $('input[type="text"]').keyup();
        });
        // ///////

    }


</script>

1 个答案:

答案 0 :(得分:2)

不是100%清除,但似乎您希望能够以编程方式更改值并同时调用resize方法。

要执行此操作,您只需在更改值后触发使用处理程序的事件。

示例:

$('#someInput').val('some new string').keyup();

或者一次完成所有这些:

$('input[type="text"]').keyup();

这与做:

相同
$('input[type="text"]').trigger('keyup');