2013-06-21 99 views
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"

+0

請嘗試$( '#signinform')[0] .submit(); –

回答

2

看看在補充說明jQuery的文檔:http://api.jquery.com/submit/

形式及其子元素不應該使用輸入名稱或ID與表格的屬性,如提交,長度或方法衝突。名稱衝突可能導致令人困惑的失敗。有關規則的完整列表並檢查標記是否存在這些問題,請參閱DOMLint。

該按鈕與name="submit"實際上覆蓋默認的jQuery submit()方法。