2012-06-05 56 views
2

這裏是我的JsfiddlejQuery的的preventDefault()函數不工作

其實我試圖驗證文本字段提交之前。 如果文本字段爲空,並且沒有提交表單,我想顯示errormsg_box。 但在這裏它不工作 這裏是我的腳本:

$("form").submit(function(event) { 

    var text_val = $('#emailid').val(); 
    alert(text_val); 
    if (text_val != ' ') { 
     $('.errormsg_box').show(); 
     return false; 
     event.preventdefault(); 
    } 
    else if (text_val != '') { 
     $('.errormsg_box').hide(); 
     return true; 
    } 
}); 
+4

首先,JavaScript是大小寫敏感的語言。它應該是'event.preventDefault()'。接下來,'return false'與'preventDefault'重疊。 – VisioN

+0

有關驗證,請使用jQuery驗證插件。它對於驗證表單域的靈活性和特定性要高得多 –

回答

2
if ($.trim(text_val) === "") { 
    return false; 
    // Or 
    event.preventDefault(); // event.preventdefault() 
          // javascript is case sensitive. 
} 

全碼:

$("form").submit(function(event) { 
    var text_val = $('#emailid').val(); 

    if ($.trim(text_val) === "") { 
     $('.errormsg_box').show(); 
     return false; 
    } 
    else 
     $('.errormsg_box').hide(); 
});​ 

Live DEMO

如果你想validte文本是一個有效的電子郵件地址:

var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
if (!regex.test($.trim(text_val))) 
    ... Error 

Live DEMO

+0

+1你是唯一的(除了我':)')誰得到了有'return false'和'preventDefault'在一起。加修剪是一種很好的做法。 – VisioN

+0

但''=顯示消息框和''=隱藏,因此修剪是將兩者合併爲始終隱藏的''。 –

+0

@JPHollmons。查看完整的代碼和演示。 – gdoron

1
$("form").submit(function(event) {  
    var text_val = $.trim($('#emailid').val()); // $.trim() for remove space 
    if (!text_val) { // check for empty 
     $('.errormsg_box').show(); 
     return false; 
     //or 
     //event.preventDefault(); 
    } 
}); 

DEMO

+0

您可能想對您所做的更改發表評論。 –

+0

無論值是什麼,都可以防止默認值。 – gdoron

+0

嗨你的腳本不工作。我在jsfiddle嘗試這裏是鏈接http://jsfiddle.net/hhyZk/3/ –

0

編輯這可能是一個更好的解決方案:

<input id="emailid" class="required email" /> 

和使用jQuery驗證插件: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

$("#form").validate(); 

所以是這樣的:

$(document).ready(function() { 
    $("#form").submit(function() { 
     var container = $('errormsg_box'); 

     var validator = $("#form").validate({ 
      errorContainer: container, 
      errorLabelContainer: $("ul", container), 
      ignore: ":not(:visible)", 
      wrapper: 'li', 
      rules: { 
       emailid: { required: true, email: true } 
      }, 
      messages: { 
       emailid: "The e-mailaddress is invalid!" 
      } 
     }); 
     if ($("#form").valid()) { 
      alert('ok nice!'); 
     }  
    }); 
});