如果textarea的字符超过100个字符,我怎么能禁用提交按钮?
这是用于检查用户是否已选择上传图像的代码。请告诉我如何命名我的textarea并指导我完成安装。
$(function() {
$('form').submit(function() {
if(!$("form input[type=file]").val()) {
alert('You must select a file!');
return false;
}
});
});
答案 0 :(得分:5)
首先,禁用提交按钮,例如
<input type="submit" disabled="disabled" id="submitid" />
接下来,您应该编写一个函数,在用户编写时计算textarea的长度,这可以通过使用jQuery中的keyup函数或普通Javascript中的onkeyup来完成。 jQuery中的示例:
$("#textareaid").keyup(function () {
if((this).val().length > 100) {
$("#submitid").removeAttr('disabled');
} else {
$("#submitid").attr("disabled", "disabled");
}
});
注意:代码未经过测试。
SetInterval方法:
setInterval(function () {
if($("#textareaId").val().length > 100) {
$("#submitid").removeAttr("disabled");
} else {
$("#submitid").attr("disabled", "disabled");
}
}, 500); //Runs every 0.5s
完整尺寸示例:
<form>
<textarea id="textareaId"></textarea>
<input type="submit" id="submitId" disabled="disabled" />
</form>
<script type="text/javascript">
setInterval(function () {
if($("#textareaId").val().length > 100) {
$("#submitId").removeAttr("disabled");
} else {
$("#submitId").attr("disabled", "disabled");
}
}, 500); //Runs every 0.5s
</script>
答案 1 :(得分:-1)
每次更改文本区域中的数据时,您都可以更新提交按钮的状态,但这可能会有问题,因为每个浏览器都有不同的textareas事件(在javascript中)
一种常见的方法是设置一个间隔来检查提交框,然后根据它确定按钮的布尔值。例如
window.setInterval(function(){ $('#submitBtn').disabled = $("#textArea").val().length < 100 }, 100);
(未经过测试的代码)
答案 2 :(得分:-1)
如果在提交时验证textarea中的字符数,则用户更喜欢它。如果小于100,则取消提交并向用户提供错误消息,说明原因。据推测,页面上有一个提示,因此用户应该知道100个字符标准以及他们输入的字符数。
如果确实希望禁用该按钮,则在页面加载时使用脚本禁用它。使用键盘监听器来计算textarea中的字符并启用提交按钮(如果超过100)。您可能还需要列出其他事件,如果用户通过拖动或粘贴更改文本,则提交按钮被禁用财产得到适当更新。
答案 3 :(得分:-1)
以Minitech相当简洁的答案为基础:
$(function() {
$('form').submit(function() {
if(!$("form input[type=file]").val()) {
alert('You must select a file!');
return false;
}
if($("#theTextArea").val().length <= 100) {
alert("You must enter more than 100 characters!");
return false;
}
});
});
只需将theTextArea
替换为您要测试的特定文字区域的ID