jQuery在同一页面中有两个表单 - 值更改

时间:2014-08-27 00:14:19

标签: javascript php jquery ajax

我在表格中列出了所有用户。最后一个td元素将包含一个表单, 根据用户是否打开帐户的表单或关闭帐户的表单 已经关闭或没有。我正在使用来自http://malsup.com/jquery/form/的jQuery AJAX表单插件。 我想做的是在提交表单之前更改按钮的值。

这是我现在的JS:

$(document).ready(function() {

    $('form').ajaxForm({
        beforeSubmit: function() {
                $('form').find('input').val('Wait...');
            },
            success: function(data) { 
                $('body').html(data);
            }
        });
        return false;

    });

,这是我的HTML标记:

<td>
<?php if($user['closed'] == 0):?>
    <?php $attributes = ['class' => 'account']; ?>      
    <?php echo form_open('admin/closeAccount', $attributes);?>
        <input type="hidden" name="user_id" value="<?=$user['user_id']?>"/>
        <input type="hidden" name="user_email" value="<?=$user['email']?>"/>
        <input type="submit" name="close_account" class="btn btn-danger btn-sm" id="trigger" value="Close" >
    <?php echo form_close();?>

<?php else:?>
      <?php $attributes = ['class' => 'account'];?>
      <?php echo form_open('admin/openAccount');?>
        <input type="hidden" name="user_id" value="<?=$user['user_id']?>"/>
        <input type="submit" data-loading-text="Odota..." name="open_account" class="btn btn-success btn-sm" id="trigger" value="Open" >
      <?php echo form_close();?>
<?php endif ?>
</td>

问题在于,每次我尝试提交表单时,它现在都会将所有按钮的值更改为“等待...”,而不仅仅是我单击的按钮。我试过了 用$('form')中的$(this)替换$('form').find('input').val('Wait...');,但这根本没有帮助我。

5 个答案:

答案 0 :(得分:0)

试试这段代码

$( 'BTN。 ')VAL(' 等待...');

$( 'BTN-危险。 ')VAL(' 等待...');

$( 'BTN-SM。 ')VAL(' 等待...');

答案 1 :(得分:0)

如果我理解你,你只需要将选择器更改为 - $('input [type =“submit”]')。 所以它会 - $('form').find('input[type="submit"]').val('Wait...');

或者 使用:submit选择器

答案 2 :(得分:0)

根据插件文档(http://malsup.com/jquery/form/#options-object) 传递给beforeSubmit回调的$ form应该允许您访问当前正在提交的表单。

尝试:

$('form').ajaxForm({
    beforeSubmit: function(arr, $form, options) {
        $form.find('.btn').val('Wait...');
    },
    success: function(data) { 
        $('body').html(data);
    }
});

答案 3 :(得分:0)

尝试为CSS选择器添加更多特异性。在你的ajaxForm()调用中,尝试这个来改变提交按钮值:

$(this).find('input[type="submit"]').val('Wait...');

答案 4 :(得分:0)

您的按钮有ID,为什么您没有使用该选择器?

$("#trigger").val("Wait...");

表单本身是否通过ajax加载?如果是,那就委托。

$(document).on("customevent", "#trigger", function() {
    $(this).val("Wait...");
});

然后在beforesubmit中只需$(document).trigger(&#34; customevent&#34;);