0

1 つの選択オプションで異なる入力値を取得したい。私だけがそれを機能させることはできません..

$("#theSelect").change(function() {
    if($("#theSelect") == "foo")    {
      someInput1.show();
      someInput1.value = "Some Foo text";

      someInput2.show();
      someInput2.value = "different Text";
    }

誰でもアイデアはありますか?

参照: http://jsfiddle.net/853GJ/2/

4

4 に答える 4

0

jqueryobjectstring値と比較しています。

if($("#theSelect") == "foo")   

次を使用して値を取得する必要があります.val()

if($("#theSelect").val() == "foo")

また、非表示の入力用の jquery オブジェクトを取得する必要があります。

var someInput1 = $('#someInput1');
于 2013-01-10T22:16:31.427 に答える
0

valそのためには、選択要素の使用メソッドの値を取得する必要があります。また、現在の要素の値を取得するためthisに内部で使用することもできます。ifまた、入力要素を見つけて表示し、その値を変更する必要があります。

$("#theSelect").change(function() {
  if($(this).val() == "foo") {
    $("#someInput1").show();
    $("#someInput1").val("Some Foo text");

    $("#someInput2").show();
    $("#someInput2").val("different Text");      
  }
});
于 2013-01-10T22:19:02.317 に答える
0

あなたのjquery内で気づいたいくつかのこと:

jQuery :

var $someInput1 =  $("#someInput1");
var $someInput2 =  $("#someInput2");

$someInput1.hide();
$someInput2.hide();

$("#theSelect").change(function() {  

    if($("#theSelect").val() === "foo"){
      $someInput1.show().val("Some Foo text");
      $someInput2.show().val("different Text");
    }

    if($("#theSelect").val() === "bar")    {
      $someInput1.show().val("Some bar text");
      $someInput2.show().val("Text....");
    }

}).change(); // trigger once if needed
  • if($("#theSelect") == 'foo'に変更されましたif($("#theSelect").val() == 'foo'
  • .valueに変更val()
  • $("#someInput1")とのキャッシュ変数を作成しまし$("#someInput2")た。

于 2013-01-10T22:19:53.803 に答える
0

変更ハンドラ内でthis要素を参照します。

あなたのifでは、メソッドvalueを使用して取得できる文字列と比較したいval()

$("#theSelect").change(function() {
    if($(this).val() == "foo")    {
     /* assuming that "someInput" is a jQuery object since you are using "show()"*/
        /* use val() since someINput is jQuery object... can chain the methods*/

      someInput1.show().val("Some Foo text"); 

    }
})
于 2013-01-10T22:21:36.030 に答える