启用/禁用基于输入字段的提交按钮(已填充/未填充)

时间:2016-11-05 04:01:18

标签: javascript jquery forms form-submit checkvalidity

我在此代码中缺少的内容,如果我只想输入提交按钮启用/禁用/启用..只要我填写或取消输入文本? 抱歉,我正在尽我所能学习javascript ...任何人都可以帮我修复此代码吗?

<form name="myform" method="post">
<input onkeyup="checkFormsValidity();" id="input_id" type="text" name="input_name" value=""/>
<input type="submit" name="submit_name" value="OK" class="submit_class" id="SubmitButton"/>
</form>

<script>
var sbmtBtn = document.getElementById("SubmitButton");
sbmtBtn.disabled = true; 

function checkFormsValidity(){
var myforms = document.forms["myform"];   
    if (myforms.checkValidity()) {
        sbmtBtn.disabled = false;
    } else {
        sbmtBtn.disabled = true;
    }
}
</script>

这是小提琴:https://jsfiddle.net/1zfm6uck/

我是否缺少声明onLoad模式或类似的内容? 谢谢!

2 个答案:

答案 0 :(得分:2)

实际上 - 如果它不是jsfiddle示例,那么您的代码可以很好地运行:

var sbmtBtn = document.getElementById("SubmitButton");
sbmtBtn.disabled = true; 

function checkFormsValidity(){
  var myforms = document.forms["myform"];   
  if (myforms.checkValidity()) {
    sbmtBtn.disabled = false;
  } else {
    sbmtBtn.disabled = true;
  }
}
input[type='submit']:disabled{
	color:red;
}
<form name="myform" method="post">
<input onkeyup="checkFormsValidity();" id="input_id" type="text" name="input_name" value="" required="required" />
<input type="submit" name="submit_name" value="OK" class="submit_class" id="SubmitButton"/>
</form>

问题是jsfiddle将你的javascript代码放入clousure中,因此checkFormsValidity范围内的input函数不可用。

我在required="required"添加了input,以确保它是必填字段(这会影响您表单的checkValidity()。)

答案 1 :(得分:1)

function checkFormsValidity(){

需要改为:

checkFormsValidity = function(){

就我个人而言,我不会以这种方式检查有效性,但就使您的代码无错误地工作而言,这样就可以了。

编辑:同时将required="required"添加到输入中。