0

我在这段代码中缺少什么,如果我只想让输入提交按钮启用/禁用/启用..只要我填写或取消填写输入文本?抱歉,我正在尽我最大的努力学习 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 模式或类似的东西吗?谢谢!

4

2 回答 2

3

实际上 - 如果它不是一个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()您的表单)。

于 2016-11-05T04:11:18.060 回答
1
function checkFormsValidity(){

需要改为:

checkFormsValidity = function(){

就我个人而言,我不会以这种方式检查有效性,但就使您的代码可以正常工作而言,它会做到这一点。

编辑:也添加required="required"到输入。

于 2016-11-05T04:06:05.320 回答