0

我刚刚遇到了 jQuery 表单提交的问题。我试图在单击按钮时使用 jQuery ajax 验证重复的表单字段。

如果用户重复显示消息,则触发表单提交功能。

这是我的代码:

 <form method="post" action="mysite/action" id="signinform" name="signinform">
    <input type="text" tabindex="7" name="user_name" style="width: 100%" maxlength="255"    id="user_name" class="required" value="<?php echo $user_name ?>" />
    <em></em>
    <button type="button" onclick="is_duplicate_user()" class="button-big" name="submit">Continue</button>
  </form>
<script type="text/javascript">
function is_duplicate_user() {
    $('em').html('');
    $.ajax({
        type: 'POST',
        url: 'signin/is_user_exist',
        async: false,
        data: {'user_name': $('#user_name').val()},
        success: function(data) {
            if (data !== 'FALSE') {
                $('em').html(data);
                return false;
            } else {
                console.log('trigger submit event');
                $('#signinform').trigger('submit');
            }
        }
    });
}
</script>

如果data!=='FALSE'为真,则em使用 ajax 返回数据设置,否则显示控制台消息但未触发提交功能。

然后我将按钮名称更改name="submit"name="continue_button". 它开始工作。

请你告诉我为什么它不能与name="submit".

4

2 回答 2

2

查看附加说明中的 jQuery 文档:http: //api.jquery.com/submit/

表单及其子元素不应使用与表单属性(例如提交、长度或方法)冲突的输入名称或 ID。名称冲突可能会导致令人困惑的失败。有关规则的完整列表并检查这些问题的标记,请参阅 DOMLint。

该按钮name="submit"实际上覆盖了默认的 jQuerysubmit()方法。

于 2013-06-21T14:02:01.463 回答
1

来自 JQuery 文档:

表单及其子元素不应使用与表单属性(例如提交、长度或方法)冲突的输入名称或 ID。名称冲突可能会导致令人困惑的失败。有关规则的完整列表并检查这些问题的标记,请参阅 DOMLint。

看一下这个 :

http://forum.jquery.com/topic/submiting-a-form-programmatically-not-working

于 2013-06-21T14:02:56.490 回答