enable/disable 基于输入字段的提交按钮(filled/not 已填充)
enable/disable submit button based in input field (filled/not filled)
我在此代码中缺少什么,如果我只想将输入提交按钮设置为 enable/disable/enable.. 只要我填写或取消填写输入文本?
抱歉,我正在尽最大努力学习 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>
这是fiddle:https://jsfiddle.net/1zfm6uck/
我是不是没有声明 onLoad 模式或类似的东西?
谢谢!
function checkFormsValidity(){
需要更改为:
checkFormsValidity = function(){
就我个人而言,我不会以这种方式检查有效性,但就使您的代码无误地工作而言,可以做到这一点。
编辑:同时将 required="required"
添加到输入中。
实际上 - 如果它不是 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
.
范围内不可用
我在您的 input
中添加了 required="required"
以确保它是必填字段(这将影响您表单的 checkValidity()
)。
我在此代码中缺少什么,如果我只想将输入提交按钮设置为 enable/disable/enable.. 只要我填写或取消填写输入文本? 抱歉,我正在尽最大努力学习 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>
这是fiddle:https://jsfiddle.net/1zfm6uck/
我是不是没有声明 onLoad 模式或类似的东西? 谢谢!
function checkFormsValidity(){
需要更改为:
checkFormsValidity = function(){
就我个人而言,我不会以这种方式检查有效性,但就使您的代码无误地工作而言,可以做到这一点。
编辑:同时将 required="required"
添加到输入中。
实际上 - 如果它不是 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
.
我在您的 input
中添加了 required="required"
以确保它是必填字段(这将影响您表单的 checkValidity()
)。