我已经通过10个简单步骤从javascript学习js。在任务104中,有一个任务是在Check Box Selections之后验证输入类型文本。但是,在选中复选框后,我对如何抓取文本字段感到困惑。检查复选框是否已选中后,我尝试使用语法formName.TextareafieldName
获取文本字段。
然而,在本书中,遵循的语法为form.formName.TextareafieldName
。在浏览器中输出时,它显示只选中了复选框,但无法获取显示ERR_FILE_NOT_FOUND的textfiled。我的代码如下。
<form name="myForm" action="js_form_validation_with_inputcheckbox.html"
onSubmit="return checkForm(this);">
<input type="checkbox" name="myCheck" value="Checked"> Check Here<br>
If checked, enter your name:
<input type="text" name="myText"><br>
<input type="submit">
</form>
这里的剧本:
<script>
function checkList(check) {
if (check.checked) {
if (myForm.myText.value.length == 0) {
window.alert("You have checked the check box;you must provide your name.");
return false;
}
}
return true;
}
function checkForm(formObj) {
return checkList(formObj.myField.value);
}
</script>
如果有人能清除我的困惑,我将非常感激。
答案 0 :(得分:1)
从 checkForm 传递formObj.myField.value
,但没有名为 myField 的控件。也许你的意思是 myCheck ?
此外, checkList 函数似乎需要一个控件,而不是一个值,因此传递控件。
尝试:
function checkForm(formObj) {
// Pass the checkbox control using its name
return checkList(formObj.myCheck);
}
关于:
> i tried to grab the textfield with syntax as formName.TextareafieldName
文档有一个forms集合,它是文档中的所有表单。可以通过索引或其名称或ID来引用成员。在某些浏览器中,ID将成为引用表单的全局变量,但使用该功能被认为是个坏主意。
您可以使用以下方式引用表单:
document.forms.myForm
或
document.forms[0]
假设它是文档中的第一个或唯一的表单。同样,控件可以作为表单的命名成员访问,所以:
var form = document.forms[0];
var myCheck = form.myCheck;
表单还有一个elements集合,它是表单中(或属于表单)的所有控件,因此您也可以这样做:
var myCheck = form.elements.myCheck;
或
var myCheck = form.elements[0];
如果 myCheck 是表单中的第一个控件。
答案 1 :(得分:0)
您可以将此表格用于您的示例......
<form>
First name:<br>
<input name="firstname" id="firstname" type="text">
<br>
Last name:<br>
<input name="lastname" type="text">
</form>
<br>
<p>
<input onchange="checkList(this);return false;" id="change" type="checkbox">
<span id="sp-change"></span></p>
这是脚本代码......
function checkList(ch) {
if (ch.checked) {
var textBox = document.getElementById("firstname");
var textLength = textBox.value.length;
if (textLength == 0) {
window.alert("You have checked the check box;you must provide your name.");
return false;
} else {
window.alert("Success");
return true;
}
}
return false;
}
我认为这对你有很大的帮助。