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

Call jQuery function for each form input

本文关键字:调用 jQuery 函数 输入 表单      更新时间:2023-09-26

我当前使用的代码位于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>

不是100%清楚,但您似乎希望能够通过程序更改值,同时调用resize方法。

要做到这一点,您只需要在更改值后触发使用处理程序的事件。

示例:

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

或者一次性完成所有操作:

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

这和做是一样的

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