1

JSFiddle リンクは次のとおりです: http://jsfiddle.net/rTJw2/1/

HTMLは次のとおりです。

<label for="gender">Gender: </label>
<input type="radio" name="genderS" id="g1" value="male" checked="checked">Male</input>
<input type="radio" name="genderS" id="g2" value="female" >Female</input>
<br>
<input name="submit" type="submit" value="Select" onclick="scriptResult();"/>

<script type="Javascript">

function scriptResult(){

if (document.getElementById('g1').checked) {
var gender === "male"; 
} else if (document.getElementById('g2').checked) {
var gender === "female";   
};

 alert(gender);
};



</script>

それは明らかなことだと確信しています。ページに JavaScript を実装する方法を学び始めたばかりで、送信ボタンが押されたときに関数を実行したいだけです。

何か案は?

4

5 に答える 5

0

ブラウザで開発者ツールを使用してこれを実行すると、 と の構文エラーが表示されvar gender === "male";ますvar gender === "female";

===値を割り当てるためではなく、同等性を比較するためのものです。シングル=は値を割り当てるためのものです。

于 2013-11-12T15:04:55.843 に答える
0

さて、まず第一に。

関数のスコープのため、これは jsfiddle では機能しません。jsfiddle は onload イベントで JS を実行します。つまり、関数scriptResult()は onload 関数に囲まれており、ボタンから呼び出すことはできません。

修正、JS の配置を「onload」ではなく「head」に変更すると動作します

次に、if/else ステートメント内で性別変数を宣言しています。また、範囲を制限します。性別変数は、ステートメントの外で宣言する必要があります。そして、ステートメントでのみ割り当てられます。

第三に、=ではなくを使用します===

function scriptResult() {

    var gender;

    if (document.getElementById('g1').checked) {
        gender = "male"; 
    } 
    else if (document.getElementById('g2').checked) {
        gender = "female";   
    }

    alert(gender);
}
于 2013-11-12T15:09:07.653 に答える
0

更新された JSFiddle: http://jsfiddle.net/b59vR/

複数の問題:

<script type="Javscript">

する必要があります<script type="text/javascript">

else if (document.getElementById('g2').checked) {
    var gender === "female";   
}; //There should not be a semicolon here, or at the end of the function

var gender === "male"; //You should not use a triple equals here.

代わりに を=使用します。変数の設定に使用されます

全体として、次のようにする必要があります。

function scriptResult(){
    if(document.getElementById("g1").clicked){
        var gender="male";
    }else{
        var gender="female";
    }
    alert(gender);
}
于 2013-11-12T15:05:15.017 に答える
0

これが私の提案です

  1. 「提出」という名前を付けないでください
  2. ===代入演算子ではなく比較演算子です。=
  3. JavaScript を正しく綴らないと何も起こりません
  4. フォームにラップし、インラインの場合は onsubmit を使用しますが、ヘッド onload にイベント ハンドラーを追加することをお勧めします
  5. ラベルを正しく使う
  6. JSFiddle でロード時に head を使用する

この ライブデモのように

window.onload=function() {
  document.getElementById("form1").onsubmit=function() {
    var gender = "unknown";
    if (document.getElementById('g1').checked) {
      gender = "male"; 
    } 
    else if (document.getElementById('g2').checked) {
      gender = "female";   
    }
    alert(gender);
  }
}

使用して

<form id="form1">
  Gender:
  <input type="radio" name="genderS" id="g1" value="male"   checked="checked" /><label for="g1">Male</label>
<input type="radio" name="genderS" id="g2" value="female"/><label for="g2">Female</label>
<br>
<input type="submit" value="Select"/>
</form>  
于 2013-11-12T15:15:03.497 に答える
-4

私はあなたが場違いなものをいくつか持っていると思います, 私は再配置しました:

<script type="Javascript">

function scriptResult() {

    var gender = "";

    if (document.getElementById('g1').checked) {
        var gender = "male"; 
    } 
    else if (document.getElementById('g2').checked) {
        var gender = "female";   
    }

    alert(gender);
}
</script>
于 2013-11-12T15:05:13.490 に答える