[英]Show Alert Message When Input Is Too Short using jQuery
我嘗試使用jQuery在輸入短於給定限制時顯示警報消息。 不幸的是,我的代碼無法正常工作,因此尋求您的幫助。
這是我正在使用的代碼。
的HTML
<input type="textarea" name="message" id="message" row="20" col="50" />
<input type="submit" name="submit" id="submit" value="Send Message" />
的JavaScript
<script type="text/javascript">
jQuery(document).ready(function($) {
$("input:submit[name='submit']").on("click",function() {
var msgwords = $("input:textarea[name='message']").val().replace( /[^\w ]/g, "" ).split( /\s+/ ).length;
var minwords = 10;
if (comwords < minwords) {
alert("Your Comment is too short.");
}
});
});
</script>
您想將if(comwords < minwords)
切換為if(msgwords < minwords)
這是您完全可以使用的代碼。 根據需要進行更改。
<script type="text/javascript">
/* Use $ instead of `jQuery`, it's nicer */
$(document).ready(function() {
/* Reference the button ID (it's unique...) */
$("#submit").click(function(e) {
/* Your function to replace works nicely */
var msgwords = $("#message").val().replace( /[^\w ]/g, "" ).split( /\s+/ ).length;
var minwords = 10;
if (msgwords < minwords) {
e.preventDefault();
alert("Your Comment is too short.");
}
});
});
</script>
該代碼引用了確切的ID(一旦知道它可以工作,就可以更改它)。 您的拆分函數檢查單詞而不是字符也可以很好地工作。 最后,如果注釋太短,則e.preventDefault()
阻止按鈕提交。
我還要指出,您可以使用e.preventDefault();
或return false
,后者等於e.preventDefault();
和e.stopPropagation();
。 這樣可以防止該事件傳播(或“冒泡”)DOM。
有兩個問題。
:textarea
偽選擇器。 comwords
未定義。 您:textarea
從選擇器中刪除:textarea
。 並使用msgwords
代替comwords
。
我會改為:
.form()
綁定到submit
事件。 另外,防止表單提交。 String#trim
清理前導和尾隨空格。 id
屬性;) 遵循以下原則:
<form>
<input type="textarea" name="message" id="message" row="20" col="50" />
<input type="submit" name="submit" id="submit" value="Send Message" />
</form>
jQuery(function($) {
$("form").submit(function () {
var minwords = 10;
/* Trim leading and trailing spaces */
var message = $("#message").val().trim();
var words = message.split(/\s+/).length;
/* Disambiguous matches for an empty string */
if ((message == "") || (words < minwords)) {
alert("Your comment is too short.");
/* Prevent form submission by returning false */
return false;
}
return true;
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.