在复选框选择后验证输入类型文本

时间:2015-01-02 11:54:37

标签: javascript

我已经通过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>

如果有人能清除我的困惑,我将非常感激。

2 个答案:

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

我认为这对你有很大的帮助。