1

when i am trying set radio button checked through jquery.. it gives me an error

Uncaught TypeError: Object [object HTMLInputElement] has no method 'prop'

var sub="twoWheeler";
if (vehicleType == sub) {
       alert("asdasd");
       window.opener.document.getElementById("radios1").prop("checked");
}else{

};
4

1 に答える 1

6

getElementByIdDOM要素参照(あなたの場合は an )を返します。つまり、 jQuery objectsに属するメソッドHTMLInputElementはありません。.prop()

.prop()それに加えて、単一のパラメーターを使用した呼び出しは単なるゲッターであり、それを何にも割り当てていないため、コードに副作用はありません。要素のcheckedプロパティを設定するには、次を使用できます。

window.opener.document.getElementById("radios1").checked = true;

上記は Pure JS を使用したもので、質問は jQuery でタグ付けされていますが、この時点でそれを使用すると、2 つの異なるウィンドウ オブジェクトを使用しているため、作業が難しくなります。


#radios1使用できるのと同じページに jQuery が含まれていると仮定します。

window.opener.$('#radios1').prop('checked', true);

デモ(ポップアップを有効にする必要がある場合があります)

または、上記のコードを実行しているページにのみ jQuery が含まれている場合は、コンテキスト セレクターを使用できます。

$('#radios1', window.opener.document).prop('checked', true);

デモ(ポップアップを有効にする必要がある場合があります)

しかし、jQuery は、この IMO の場合、物事をより混乱させるだけです。両方のページに jQuery がある場合、両方とも機能します。純粋な JS は高速であるだけでなく、私にはきれいに見えます。

于 2013-04-13T16:25:28.963 に答える