2011-11-18 57 views
1

alert()工作正常,但return false不停止表單被張貼 - 任何想法?JQuery手機 - 返回false不阻止表單提交

<script type="text/javascript"> 
function form_val() { 
    //Check date 
    var email=document.getElementById('email').value; 
    var passw=document.getElementById('password').value; 
    if(email==''||email==null||passw==''||passw==null) { 
     alert('Please fill in both fields.'); 
     return false; 
    } 

} 
</script> 

<form action="userlogin.html" method="post" name="log_form" onsubmit="return form_val();"> 
    <div data-role="fieldcontain"> 
     <input type="email" name="email" id="email" value="" placeholder="Email Address" /> 
     <input type="password" name="password" id="password" value="" placeholder="Password" /> 
     <div class="ui-grid-a"> 
     <div class="ui-block-a"> 
      <button type="submit" name="login" value="" data-theme="c">Sign In</button> 
     </div> 
     <div class="ui-block-b"> 
      <br /> 
      <a href="http://mobile.*****.com/lostpswd.html" rel="external" style="font-size:10px; padding-left:10px;">Forgotten Password?</a> 
     </div> 
    </div> 
</form> 

回答

2

您已經標記的問題jquery-mobile但你不能在引用代碼的任何地方使用jQuery。

代碼看起來在一個老式的DOM0的方式(這是可以的,應該仍然工作,除了issues with getElementById on IE7 and earlier除外)。我會改變的檢查中form_val一點:

function form_val(){ 
    //Check date 
    var email=document.getElementById('email').value; 
    var passw=document.getElementById('password').value; 
    if(!email || !passw) { 
     alert('Please fill in both fields.'); 
     return false; 
    } 
} 

...但那些你已經大概應該有工作禁止未顯示在代碼頁面上的上述或其他腳本錯誤列出的IE問題。

這裏是你如何使用jQuery(其周圍的IE漏洞自動爲你工作)上述:

jQuery(function($) { 
    $("form[name='log_form']").submit(form_val); 
}); 
function form_val() { 
    if (!$("#email").val() || !$("#password").val()) { 
     alert('Please fill in both fields.'); 
     return false; 
    } 
} 

...或者,如果你不需要form_val是全球性的(避免全球功能如果可能的話,它並不需要是全球性只是爲了驗證這種形式):

jQuery(function($) { 
    $("form[name='log_form']").submit(form_val); 
    function form_val() { 
     if (!$("#email").val() || !$("#password").val()) { 
      alert('Please fill in both fields.'); 
      return false; 
     } 
    } 
}); 
+0

謝謝你的幫助,我學到了很多! –

0

你可以使用常規的「按鈕」類型,而不是「提交」。然後調用您的JavaScript onclick來驗證並提交表單。

相關問題