2

次のような他のページにデータを送信するフォームがあります。

<input name="ShowBuy" id="ShowBuy" type="radio" value="1" checked = "checked"> Show Buy
<input name="ShowBuy" id="ShowBuy" type="radio" value="0"> Hide Buy <br>
<input name="ShowSale" id="ShowSale" type="radio" value="1" checked = "checked"> Show Sale
<input name="ShowSale" id="ShowSale" type="radio" value="0"> Hide Sale<br>

Hide Buy をチェックして結果を印刷すると、値「1」が表示されます!!! なぜ、値 "0" を表示する必要があります。送信するコードがあります:

<script language="JavaScript">
  $(function(){
           $('#Normal').click(function(){
               sessionStorage.ShowSale = $("#ShowSale").val();
               sessionStorage.ShowBuy = $("#ShowBuy").val();
              window.open('Print.php', '_blank')  
           }); 
       });   
</script>

ここでどこに問題があります。

4

1 に答える 1

0

jquery コードの問題は、ID セレクターを使用していることです。ID は 1 つの要素の一意の識別子であると想定されており、jquery はその ID を持つ最初の要素と一致し、値を返します。

ここに1つの解決策があります:

<input name="ShowBuy" class="ShowBuy" type="radio" value="1" checked = "checked"> Show Buy
<input name="ShowBuy" class="ShowBuy" type="radio" value="0"> Hide Buy <br>
<input name="ShowSale" class="ShowSale" type="radio" value="1" checked = "checked"> Show Sale
<input name="ShowSale" class="ShowSale" type="radio" value="0"> Hide Sale<br>

id上記の属性を置き換えましたclass

次に、jquery を変更する必要があります。

<script language="JavaScript">
  $(function(){
           $('#Normal').click(function(){
               sessionStorage.ShowSale = $("input.ShowSale:checked").val();
               sessionStorage.ShowBuy = $("input.ShowBuy:checked").val();
              window.open('Print.php', '_blank')  
           }); 
       });   
</script>

これで入力が選択され、class="ShowBuy"チェックされて値が取得されます

于 2012-12-22T10:29:17.990 に答える