-1

javascriptでラジオボタンとオプションボックスを検証しようとしています。これがコードですが、機能していません... OprionBoxとRadioのJavascriptコード:

function checkCountry()
        {
        if(document.form.country.selectedIndex=="")
        {
        alert("Please select country from the list");
        return false;  
        }
        return true
        }
function checkGender()
        {
        if(!document.getElementsByName("sex")[0].checked && !document.getElementsByName("sex")[1].checked)
        {
        alert("Select Male/Female");
        return false;
        }
        return true;
        }
function validate()
      {
            checkCountry();
            checkGender();
      }

HTMLコード:

<form name="form" method="post" onSubmit="return validate()">                
    <select name="country">
    <option value="select">(Please select a country)</option>
    <option value="pk">Pakistan</option>
    <option value="chn">China</option>
    <option value="uk">United Kingdom</option>
    <option value="usa">United States of America</option>
    <option value="ir">Iran</option>
    <option value="ma">Malaysia</option>
    </select><br>
    <input type="radio" name="sex" value="male">Male<br>
    <input type="radio" name="sex" value="female">Female<br></form>

助けてください...

4

3 に答える 3

0

if(document.form.country.selectedIndex=="")に変更if(document.getElementsByName("country").selectedIndex=="0")

于 2013-01-07T09:56:38.323 に答える
0

これはコード全体であり、正常に動作しています

<html>
<head>
<script type="text/javascript">
function checkGender()
        {
        if(!document.getElementsByName("sex")[0].checked && !document.getElementsByName("sex")[1].checked)
        {
        alert("Select Male/Female");
        return false;
        }
        return true;
        }
function checkCountry()
        {

      if(document.getElementsByName("country")[0].selectedIndex==0)
        {
        alert("Please select country from the list");
        return false;  
        }
        return true
        }
function validate()
      {
            checkCountry();
           checkGender();
      }
</script>
</head>
<body>

<form onSubmit="return validate()" >
  <select name="country">
    <option value="select">(Please select a country)</option>
    <option value="pk">Pakistan</option>
    <option value="chn">China</option>
    <option value="uk">United Kingdom</option>
    <option value="usa">United States of America</option>
    <option value="ir">Iran</option>
    <option value="ma">Malaysia</option>
    </select><br>
    <input type="radio" name="sex" value="male">Male<br>
    <input type="radio" name="sex" value="female">Female<br>
  <input type="submit" value="Submit" >
</form>

</body>
</html>
于 2013-01-07T10:30:33.297 に答える
0

選択したインデックスをチェックする行を次のように変更する必要があります。

if(document.form.country.selectedIndex === 0)これは、「国を選択してください」というエントリがあるため、常にインデックスが選択されています。

次に<input type="submit" value="test"/>、フォーム内に追加して送信をテストすると、エラーメッセージが表示されます。

http://jsbin.com/oviped/2/editを参照してください。動作しています!

于 2013-01-07T09:31:31.530 に答える