2017-10-16 4 views
0

ラジオオプションを「チェック済み」に設定しましたが、値が「未定義ですか?」

<div id="use-same-address-selection-container" class="input-field"> 
 
    <label for="delivery-same">Use Same Address?</label> 
 
\t \t \t  <div class="picker"> 
 
\t \t \t \t \t \t  <span class="radio-wrap"> 
 
\t \t \t \t \t \t \t \t  <input type="radio" name="delivery-same" id="delivery-same-yes" value="yes" class="same-address-picker"><label for="delivery-same-yes">YES</label> 
 
\t \t \t \t \t \t \t \t \t </span> 
 
\t \t \t \t \t \t \t \t \t <span class="radio-wrap"> 
 
\t \t \t \t \t \t \t \t \t  <input type="radio" name="delivery-same" id="delivery-same-no" value="no" class="same-address-picker"><label for="delivery-same-no">NO</label> 
 
\t \t \t \t \t \t \t \t \t </span> 
 
\t \t \t \t \t \t </div> 
 
</div>

私は同様の質問がここにありますけど、私は答えや記事のトンを通して見てきたし、まだ私の状況のた​​めのソリューションや説明を発見していません。私はこのようにタイプ=ラジオ入力の「点検」属性を設定しようとしています

:すぐ下の行に、

$("#use-different-address").prop('checked', true); 

その後、私はの値を確認するために、警告をプリントアウト'checked'属性を使用し、 'undefined'を継続的に取得しています。

alert("Value of the checked property for use-different-address = " + $("#use-different-address").prop('checked')); 

私は実行フロー内の異なる場所でそれをしようとする文書の周りにそれをすべて移動してきた、)$(ドキュメント).ready(でそれを入れてみました、他のカスタム関数にそれを転がり、使用して別の構文(例えば、propの代わりにattr)がありますが、ページの読み込み時に自動的にこれを 'checked'に設定することはできません。

奇妙なことに、手動でオプションの1つをクリックすると、ボックスがチェックされ、その後に正常に機能します(選択を変更したり、変更を正常にトリガするなど)。そのページの後にはどちらのオプションもチェックされず、 'checked'の値は再び 'undefined'になります。

注:私は単純に 'チェックされた'デフォルトを設定しようとしていないので、入力のためにHTMLに 'checked = true'を入れるなどの作業はできません。 sessionStorage変数が設定されているかどうかに基づいて設定されているはずです(この値を設定して正常に読み込むことができます)ので、そのsessionStorage変数が検出されます。

+0

はあなたのhtmlコード入れてくださいできますか? –

+0

説明したことがうまく機能するので、もっと多くのコードを表示する必要がありますhttps://codepen.io/pjabbott/pen/gGQWMx –

+0

どのjqueryバージョンを使用していますか? 1.6より前であれば '.attr(" checked "、" checked ")'を使う必要がありますが、もっとコード/コンテキストが役立つでしょうhttps://stackoverflow.com/a/19630917/8222554 – stephen

答えて

0

$('#use_different_address').prop('checked', true); 
 

 
function is_radio_cheked(_radio){ 
 
\t if ($(_radio).is(':checked')){ 
 
\t  return true; 
 
\t }else{ 
 
\t \t return false; 
 
\t } 
 
} 
 

 
function is_my_radio_value(){ 
 
console.log([ is_radio_cheked($('#use_different_address')), is_radio_cheked($('#not_use_different_address')) ]); 
 
} 
 

 
    console.log(is_radio_cheked($('#use_different_address')));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 

 
    <label><input type="radio" name="my_name" id="use_different_address" onClick="is_my_radio_value();">YES</label> 
 
    <label><input type="radio" name="my_name" id="not_use_different_address" onClick="is_my_radio_value();">NO</label>

+0

応答ありがとうございます...私はこれを私のために働かせることができませんでしたが、私は最終的にそれが機能するようにブロックを配置するコードの適切な場所を見つけることができました! – scoffin

関連する問題