-1

チェックされたフィールドの合計を生成するカスタム JavaScript を (最初に) 作成しました。

ただし、WordPress に実装すると、何もしません。私は何かを見落としていると思いますが、それを理解できないようです。

これは私のJavaScriptです:

<script type="text/javascript">
<!--
function show_selected_item_val($item)
{
    var res1 = 0, res2 = 0, res3 = 0, res4 = 0, res5 = 0, res6 = 0, res7 = 0, res8 = 0, res9 = 0, res10 = 0; 
    var res11 = 0, res12 = 0, res13 = 0, res14 = 0, res15 = 0, res16 = 0, res17 = 0, res18 = 0; 
    if(document.all['Q1'][0].checked)        res1 = 1;
    if(document.all['Q2'][0].checked)        res2 = 1;
    if(document.all['Q3'][0].checked)        res3 = 1;
    if(document.all['Q4'][0].checked)        res4 = 1;
    if(document.all['Q5'][0].checked)        res5 = 1;
    if(document.all['Q6'][0].checked)        res6 = 1;
    if(document.all['Q7'][0].checked)        res7 = 1;
    if(document.all['Q8'][0].checked)        res8 = 1;
    if(document.all['Q9'][0].checked)        res9 = 1;
    if(document.all['Q10'][0].checked)     res10 = 1;
    if(document.all['Q11'][0].checked)     res11 = 1;
    if(document.all['Q12'][0].checked)     res12 = 1;
    if(document.all['Q13'][0].checked)     res13 = 1;
    if(document.all['Q14'][0].checked)     res14 = 1;
    if(document.all['Q15'][0].checked)     res15 = 1;
    if(document.all['Q16'][0].checked)     res16 = 1;
    if(document.all['Q17'][0].checked)     res17 = 1;
    if(document.all['Q18'][0].checked)     res18 = 1;

    document.getElementById("show_content").innerHTML= res1 + res2 + res3 + res4 + res5 + res6 + res7 + res8 + res9 + res10 + res11 + res12 + res13 + res14 + res15 + res16 + res17 + res18;
}
//-->
</script>

これはHTMLです:

<table>
       <tr>
       <td>
          <input type="radio" name="Q1" value="1" onClick="show_selected_item_val(this)"/>yes
          <input type="radio" name="Q1" value="0" onClick="show_selected_item_val(this)"/>no
       </td>
       </tr>

       <tr>
       <td>
          <input type="radio" name="Q2" value="1" onClick="show_selected_item_val(this)"/>yes
          <input type="radio" name="Q2" value="0" onClick="show_selected_item_val(this)"/>no
       </td>
       </tr>

       <tr>
       <td>
          <input type="radio" name="Q3" value="1" onClick="show_selected_item_val(this)"/>yes
          <input type="radio" name="Q3" value="0" onClick="show_selected_item_val(this)"/>no
       </td>
       </tr>

       <tr>
       <td>
          <input type="radio" name="Q4" value="1" onClick="show_selected_item_val(this)"/>yes
          <input type="radio" name="Q4" value="0" onClick="show_selected_item_val(this)"/>no
       </td>
       </tr>

       ...

</table>

the result is: <span id="show_content">

ファイルを介して JavaScript をロードしていfunctions.phpます。確認しましたが、ロードされます。結果が出ないだけです。

したがって、スクリプトの処理が正しくないと推測しています。

助言がありますか?

4

2 に答える 2

0

これを試してください:http://jsfiddle.net/4CFcy/

関数内の $item パラメータと関数呼び出し内の this 引数を削除しました。例:

function show_selected_item_val()

...

<input type="radio" name="Q2" value="1" onClick="show_selected_item_val()"/>yes
<input type="radio" name="Q2" value="0" onClick="show_selected_item_val()"/>no
于 2013-08-23T21:43:03.800 に答える
0

このようなことをもっとやってみませんか:

function show_selected_item_val() {
    var score = 0
    for (i = 1; i < 5; i++) {
        if (document.getElementsByName('Q' + i)[0].checked) {
            score++;
        }
    }
    document.getElementById("show_content").innerHTML = score;
}

http://jsfiddle.net/BhEAq/

于 2013-08-23T21:47:47.283 に答える