禁用提交按钮,直到textarea有超过100个字符

时间:2011-04-21 03:32:48

标签: php javascript

如果textarea的字符超过100个字符,我怎么能禁用提交按钮?

这是用于检查用户是否已选择上传图像的代码。请告诉我如何命名我的textarea并指导我完成安装。

$(function() {
   $('form').submit(function() {
      if(!$("form input[type=file]").val()) {
         alert('You must select a file!');
         return false;
      }
   });
});

4 个答案:

答案 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