2017-04-06 36 views
0

我有以下JS首次點擊顯示驗證錯誤,不起作用。其次單擊它工作正常

jQuery(document).ready(function() { 
    jQuery("#form").validate({ 

     onfocusout: false, 
     onkeyup: false, 
     errorPlacement: function (error, element) { 
      jQuery(element).tooltipster(tooltipster_config); 
      jQuery(element).tooltipster('content', jQuery(error).text()); 
      jQuery(element).tooltipster('show'); 
     }, 

     success: function (label, element) { 
      jQuery(element).tooltipster('hide'); 
     }, 

     rules: { 
      'user': { 
       required: true, 
       remote: { 
        url: URL, 
        type: "get", 
        async: "false", 
        data: { 
         user: function() { 
          return jQuery("input[name=user]").val(); 
         } 
        } 
       } 

      }, 
     }, 

messages: { 
    'user': { 
     required: 'Enter user ID', 
      remote: 'No User exists' 
    } 
} 
}); 


jQuery("button[id=submit]").click(function (e) { 
    e.preventDefault(); 
    if (jQuery("#form").valid()) { 
     jQuery("form").submit(); 
    } 
    }); 
}); 

在上面的JS我試圖驗證稱爲「用戶」表單字段。如果按照定義的規則輸入了錯誤的用戶標識,則顯示「沒有用戶存在」。但是,當我更正用戶ID爲有效的用戶ID,在第一次點擊提交我仍然'沒有用戶存在'的錯誤,但點擊提交第二次,它工作正常。

我也嘗試'開'功能,而不是'點擊',但錯誤仍然存​​在。請讓我知道我錯了什麼。

+1

我想你只需要刪除'''異步:從您的代碼false'''。 – kishor10d

+0

@ kishor10d:我試過移除但沒用。 –

+0

你能打印你的'''remote'''方法嗎? – kishor10d

回答

1

嘗試是這樣的:

$("#form").validate({ 
    rules: 
    { 
     user: 
     { 
      required: true, 

      // Remote call 
      remote: { 
       url: 'process.php', // On the basis of some condition this return either "true" or "false" 
       type: 'post', 
       data: { 
        user: function() { 
        return $("#user").val(); 
        } 
       } 
      } 
     } 
    } 
    messages: 
    { 
     user : 
     { 
      required: 'Enter user ID', 
      remote: 'No User exists' 
     } 
    } 
}); 
+0

非常感謝您的回覆,我按照建議嘗試。但同樣的錯誤仍然存​​在。 –

+0

同樣的問題? –