0

我想在一个选择上获得不同的输入值 - 选项。只有我不能让它工作..

$("#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

您正在将 jqueryobject与一个string值进行比较:

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 回答