これには簡単な解決策があるはずです。入力要素を名前で取得し、その値を設定する必要があります。
次の Javascript は機能しません。
x = document.getElementsByName($('#questions').val());
x.value=this.value;
JQueryを使用した簡単な解決策はありますか?
これには簡単な解決策があるはずです。入力要素を名前で取得し、その値を設定する必要があります。
次の Javascript は機能しません。
x = document.getElementsByName($('#questions').val());
x.value=this.value;
JQueryを使用した簡単な解決策はありますか?
通常のjavascriptとjQueryを混合しています。属性セレクターを使用します。
私のサンプルとこのjsFiddleデモンストレーションをチェックしてください
HTML
<input type="text" name="nameOfTheInputElement"/>
jQuery
$(function() {
$("input[name='nameOfTheInputElement']").val("your value");
});
何らかの理由で、名前が別の要素の値である要素を変更したい場合は、これを実行します。jsFiddleデモンストレーション
HTML
<input type="text" id="questions" value="nameOfTheInputElement"/>
<input type="text" name="nameOfTheInputElement"/>
<strong> jQuery
$(function() {
var name = $("#questions").val();
$("input[name='"+name +"']").val("your value");
});
getElementsByName()はノード リストを返すため、最初のものを取得する必要があります。getElementsByName(...)[0]
しかし、あなたはすでにjQueryを使っているので、それを使ってください。jQuery セレクターに関するチュートリアルを読む
シンプルで純粋な JavaScript (したがってより高速な) ソリューション:
var x = document.getElementsByName(document.getElementById('questions').value)[0].value = this.value;
jQuery のキャッチフレーズが「書く量を減らして、もっと多くのことを行う」であることは知っていますが、多くの場合、それは真実です... many cases !== always
;-)
これを試して
var q = $("#question").val();
var x = $("input[name='" + q + "']").val();
2 行目では、id 'question' の入力で提供された名前である変数 q が ' で囲まれ、スペース、:、- などのサポートされている文字を含めることができます。
タグに関係なくコンポーネントの値が必要な場合は、次のようにします。
var x = $("[name='" + q + "']").val();
このアプローチ$("[name='" + q + "']")
は複数の要素を返すことができ.val()
ますが、最初の要素の値のみを返すことを考慮してください。
私があなたの質問を正しく理解しているなら、あなたは名前で要素を取得したいと思います、そしてあなたが選択している要素の名前はいくつかのドロップダウンまたはテキスト領域によって指定されます。
これが私の見解です:
HTML
<input type="text" id="enteredName">
<button id="doTheStuff">Do the work</button>
<input name="one" value="One">
<input name="two" value="Two">
jQuery
$('#doTheStuff').click(function(){
var objectOfInterest = $('[name=\'' + $('#enteredName').val() + '\']');
alert(objectOfInterest.val());
});
ドロップダウンを使用して選択名を指定する別の実用的な例を次に示します。