我的表單設置了一些HTML5要求填寫字段提交之前可以繼續,但因爲這不支持在< IE10,我需要確保那些瀏覽器不允許提交空的形式...通過jQuery的驗證失敗時,它不應該
<form name="upload" method="post" action="send_form_email3.php" enctype="multipart/form-data">
<div width="100%" class="con3">
<div class="lable">
<label for="first_name">First Name *</label>
</div>
<input type="text" name="first_name" id="first_name" class="span4" required />
<div class="lable">
<label for="email">Email Address *</label>
</div>
<input type="text" name="email" id="email" class="span4" required />
<div class="lable">
<label for="telephone">Contact Number *</label>
</div>
<input type="text" name="telephone" id="telephone" class="span4" required />
<div class="lable">
<label for="comments">Why are you the fun, energetic person that we are looking for? *</label>
</div>
<textarea name="comments" rows="8" id="comments" class="span4" required /></textarea>
<div class="lable">
<label for="upload">Send Us Your CV *</label>
</div>
<input type="file" name="upload" id="upload" required />
<input type="submit" value="Submit" class="btn btn-success">
</div>
</form>
來處理< IE10這種驗證(有沒有任何其他非DOM兼容的瀏覽器了嗎?大聲笑),我寫了一些jQuery的。
大多數情況下,其他形式的工作,但這次我想我可能會嘗試改進它一點,並通過.each
控制循環,而不是運行每個輸入新的if語句。
$("form[name=upload]").submit(function() {
// Internet Explorer uses a different call to stop form submission
// so we need to determine which browser is being used.
// DOM compliant browsers use HTML5 to do this.
if ($.browser.msie)
{
($("form[name=upload] input").each(function() {
if ($(this).val() == "")
{
var target, errmsg;
switch ($(this).attr("name"))
{
case "first_name":
errmsg += "Please enter your name.\r\n";
break;
case "email":
errmsg += "Please enter your email address.\r\n";
break;
case "telephone":
errmsg += "Please enter a contact number.\r\n";
break;
case "comments":
errmsg += "Please tell us why you are the fun, energetic person that we are looking for.\r\n";
break;
case "upload":
errmsg += "Please upload your CV so that we can review it.";
break;
}
event.returnValue = false;
alert(errmsg);
}
});
}
});
我不是很熟悉.each()
,所以我不能肯定自己,如果我是正確的。目前這個代碼仍然允許表單提交通過,即使有空字段也不會提示。
jQuery的哪個版本您使用的? $ .browser已棄用。 – 2013-02-28 13:28:06
看起來像頁面中引用的最早的是1.8.1。如果不推薦使用,那麼這裏的首選方法是什麼? – Ortund 2013-02-28 13:29:05
$ .support()用於確定瀏覽器是否支持curent方法。我用你的代碼設置了一個小提琴,並且HTML5保持不必求助於JavaScript或jQuery的提交表單 - http://jsfiddle.net/LRFbR/ – 2013-02-28 13:34:09