Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript在单击时验证两个控件,但如果只有一个控件验证,则不保留值_Javascript_Html - Fatal编程技术网

Javascript在单击时验证两个控件,但如果只有一个控件验证,则不保留值

Javascript在单击时验证两个控件,但如果只有一个控件验证,则不保留值,javascript,html,Javascript,Html,我正在从单个onclick验证两个控件。这两种控制都是强制性的 Onclick调用validateLocation函数,如果该函数有效,则调用validateForm函数 我的问题是: 如果用户选择一个状态并单击submit,Javascript将按预期工作,非常完美 但是 如果用户选择了一个研讨会地点但没有状态,javascript将启动,但是已经为该地点所做的选择将被清除。我需要选择保持选中状态,这样用户就不必重复单击 我的问题: 如果仅满足两个标准中的一个,如何保留值 代码如下: <

我正在从单个onclick验证两个控件。这两种控制都是强制性的

Onclick调用validateLocation函数,如果该函数有效,则调用validateForm函数

我的问题是:

如果用户选择一个状态并单击submit,Javascript将按预期工作,非常完美

但是

如果用户选择了一个研讨会地点但没有状态,javascript将启动,但是已经为该地点所做的选择将被清除。我需要选择保持选中状态,这样用户就不必重复单击

我的问题:

如果仅满足两个标准中的一个,如何保留值

代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>

<script type ="text/javascript" language="javascript">
<!--
function validateLocation() {
var radios = document.getElementsByName('RadioGroup1')

for (var i = 0; i < radios.length; i++) {
    if (radios[i].checked) {
    validateForm();
    return true;
    }
};
// not checked, show error
document.getElementById('ValidationError').innerHTML = 'Required';
alert("Please select a seminar location");
return false;
}
function validateForm() {
if(document.form1.State.selectedIndex==0)
{
alert("Please select a State");
document.form1.State.focus();
return false;
}
return true;
};
-->
</script>
</head>

<body>
<div>
<form name="form1" onSubmit="return validateLocation();">
<div>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="text-align:right">state:&nbsp;</td>
<td>    
    <select name="State" id="State">
        <option value="">Select</option>
        <option value="AK">AK</option>
        <option value="AL">AL</option>
        <option value="AR">AR</option>
    </select>
</td>
</tr>
</table>
</div>
<div>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
    <td colspan="2"><strong>Choose a seminar location</strong></td>
</tr>
<tr>
    <td valign="top">
      <input type="radio" name="RadioGroup1" value="Fayetteville Senior Center" id="RadioGroup1_0">
      </td>
    <td><strong>Location One</strong></td>
</tr>
<tr>
    <td valign="top">
      <input type="radio" name="RadioGroup1" value="Springdale Holiday Inn" id="RadioGroup1_1">
      </td>
    <td><strong>Location Two</strong></td>
</tr>
<tr>
    <td valign="top">
      <input type="radio" name="RadioGroup1" value="The Riordan Hall" id="RadioGroup1_2">
      </td>
    <td><strong>Location Three</strong></td>
</tr>
</table>
<div id="ValidationError" name="ValidationError"></div>
</div>
<div>
<input type="submit" name="button" id="button" value="Submit">
</div>
</form>
</div>
</body>
</html>

我稍微更改了脚本,以使其更符合逻辑:

<script type ="text/javascript" language="javascript">
function validateLocation() {
  var radios = document.getElementsByName('RadioGroup1')

  for (var i = 0; i < radios.length; i++) {
      if (radios[i].checked) {
        return true;
      }
  };

  // not checked, show error
  document.getElementById('ValidationError').innerHTML = 'Required';
  alert("Please select a seminar location");
  return false;
}

function validateState() {
  if(document.form1.State.selectedIndex==0)
  {
    alert("Please select a State");
    document.form1.State.focus();
    return false;
  }
  return true;  
}

function validateForm() {
  if (!validateState() || !validateLocation()) return false;
  return true;
};
</script>
然后,表单将被验证,并且不会提交,直到两个验证都成功

希望有帮助

干杯,
丹尼尔

正是我想要的。非常感谢你的帮助!
...onSubmit="return validateForm();"...