jQuery-从下拉列表中选择到上一个输入字段元素的值

时间:2018-11-26 00:59:54

标签: javascript jquery forms

我正在尝试将下拉列表1(选择)中的值分配给简单的input

我有一个简单的标记,如下所示:

text input

是的,我知道id [array]类型的ID不是100%有效的,但是很遗憾,这是第三方的要求。

以下是我的jQuery,实际上(应该)是超简单的单行代码-但不起作用(某些试验都带有“ undefined”)

<p>
    <input class="large-text o99-input-from-dropdown" id="o99_coks_settings[coks_banner_link_href]"  name="o99_coks_settings[coks_banner_link_href]" type="text" value="some-php-generated-value"/>
    <label class="description" for="o99_coks_settings[coks_banner_link_href]">
    </label>
</p>
<p>
    <label for="o99_coks_settings[coks_page_href]"></label>
    <select name="o99_coks_settings[coks_page_href]" id="o99_coks_settings[coks_page_href]" class="o99-dropdown-2-input">
    <option value='false'>None</option>
    <option value='some-php-generated-values'>Some other PHP generated values </option>
    ....  
    ....  n
    </select>
</p>

以上所有试验(和其他组合)都返回 jQuery('.o99-dropdown-2-input').change(function() { var val = jQuery(this).val(); // OR // var val = this.value; var val2 = jQuery(this).prevAll('input[type=text]:first').val(); var val3 = jQuery(this).prevAll('input').val(); var v = jQuery(this).prev(".o99-input-from-dropdown").find("input").val() console.log('Previous input id ' + val3.attr("id")); // all undefined jQuery(this).prevAll('input[type=text]:first').val = "testVal1";// all undefined jQuery(this).prevAll('.o99-input-from-dropdown').val = "testVal2";// all undefined jQuery(this).prevAll('.o99-input-from-dropdown').find('input[type=text]:first').val = "testVal3";// all undefined jQuery(this).parent().prev().find('input[type=text]:first').val = "testVal4";// all undefined jQuery(this).prev('.o99-input-from-dropdown').find('input').val = "testVal5";// all undefined console.log(v); }) -我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

尝试一下:

  console.log('Previous input id ' + $(val3).attr("id")); 

  jQuery(this).prevAll('input[type=text]:first').val("testVal1");
  jQuery(this).prevAll('.o99-input-from-dropdown').val("testVal2");
  jQuery(this).prevAll('.o99-input-from-dropdown').find('input[type=text]:first').val("testVal3");
  jQuery(this).parent().prev().find('input[type=text]:first').val("testVal4") ;jQuery(this).prev('.o99-input-from-dropdown').find('input').val("testVal5");