如果选中复选框,则需要输入

Mal*_*rte 2 javascript validation checkbox input

作为Web表单的一部分,我有两个复选框(都名为"my_checkbox")和两个输入文件结构(一个名为"input1",另一个名为"input2").

<input type="checkbox" name="my_checkbox" value="some text" onclick="a function;    checkBoxValidate(0);">

<input type="checkbox" name="my_checkbox" value="some diffrent text" onclick="a diffrent function; checkBoxValidate(1);">

<input id="input1" name="input1"  />

<input id="input2" name="input2"  />
Run Code Online (Sandbox Code Playgroud)

如果用户选择第一个复选框,则input1不能为空.如果用户选择第二个复选框,则input2不能为空.这两个复选框必须具有相同的名称.函数checkBoxValidate确保无法同时选中两个复选框(我不喜欢单选按钮).

我的javascript:

}else if (!document.myform.my_checkbox[0].checked && myform.input1.value == ''){ 
alert ('Please enter some text!',function(){$(myform.input1).focus();}); 
return false;

}else if (!document.myform.my_checkbox[1].checked && myform.input2.value == ''){ 
alert ('Please enter some text!',function(){$(myform.input2).focus();}); 
return false;
Run Code Online (Sandbox Code Playgroud)

当然,什么都行不通!请帮忙?:)

mpl*_*jan 6

看到你可能想要这么简单,我写它很简单并使用普通JS,因为你没有使用jQuery标记问题.

现场演示

window.onload=function() {
  var form1=document.getElementById("form1"); // assuming <form id="form1"
  form1.onsubmit=function() {
    if (this.my_checkbox[0].checked && this.input1.value=="") {
      alert("Please enter something in input 1");
      this.input1.focus();
      return false;
    }
    if (this.my_checkbox[1].checked && this.input2.value=="") {
      alert("Please enter something in input 2");
      this.input2.focus();
      return false;
    }
    return true; // allow submission
  }
  // if the checkboxes had different IDs this could have been one function
  form1.my_checkbox[0].onclick=function() {
    this.form.my_checkbox[1].checked=!this.checked;
  }
  form1.my_checkbox[1].onclick=function() {
    this.form.my_checkbox[0].checked=!this.checked;
  }
}
Run Code Online (Sandbox Code Playgroud)