2012-04-10 62 views
1

我有一个<select>下拉,我通过jQuery插入到我的HTML。我无法控制HTML,但是我可以控制JavaScript。jQuery onChange支持输入值

当您选择一个选项时,我试图将一个值支持到<input>元素。基本上,我有一个<select>元素<option id="1"><option id="2">onChange这个<select>元素;
如果选择option#1如果选择option#2应该支撑的价值dummy3input[name="Check_Config_PaymentGateway_CreditCards_Login1"]和值dummy4应该支撑的价值dummy1input[name="Check_Config_PaymentGateway_CreditCards_Login1"]和值dummy2input[name="Check_Config_PaymentGateway_CreditCards_Password"]
input[name="Check_Config_PaymentGateway_CreditCards_Password"]

我一直在努力jsFiddle

我一般都很喜欢JavaScript,更不用说jQuery了。这对我的技能来说很复杂......如果你能帮助我,我会非常感激。

回答

0

在这里你去:http://jsfiddle.net/VW9N6/6/

这结合了change事件<select>元素的检测值改变的时候,然后更新<input>的价值元素。

+0

简单,可以理解,完美:) – henryaaron 2012-04-10 21:36:53

+0

不是负面的,但这是非常低效的。您不会缓存输入内容,并会在每次交换时重新创建它们。此外,你没有利用jQuery中的链接。您不需要创建单独的函数,然后从更改处理程序内部调用它并内联初始页面加载。只需将函数内容放入处理程序和链.change()中,即可立即调用处理程序。看看我的缓存和链接的答案。 – 2012-04-11 01:27:48

0

尝试像下面,

编辑:缓存输入文本框。

DEMO

var dummyValues = [['dummy1', 'dummy2'], ['dummy3', 'dummy4']]; 

var $loginInput = $('input[name=Check_Config_PaymentGateway_CreditCards_Login1]'); 
var $pwdInput = $('input[name=Check_Config_PaymentGateway_CreditCards_Password]'); 

$('#paymentDD').change(function() { 
    var selectedVal = parseInt($(this).val(), 10) - 1; 
    $loginInput.val(dummyValues [selectedVal][0]); 
    $pwdInput.val(dummyValues [selectedVal][1]); 
}); 

更新dummyValues var当成你添加移动选项下拉。

0

我尽可能的缓存元素的粉丝,所以这就是我所做的。我也看到你在jsFiddle中使用了最新的jQuery(1.7.2),那么为什么不使用推荐的方法,然后调用立即的来装载?

You could try something like this:

var $span = $('span#print_pagename'), 
    $login = $('input[name="Check_Config_PaymentGateway_CreditCards_Login1"]'), 
    $password = $('input[name="Check_Config_PaymentGateway_CreditCards_Password"]'), 
    $select = $('<select><option id="1">1</option><option id="2">2</option></select>'); 

$span.after($select); 

$select.on('change', function() { 

    var $this = $(this); 

    if ($this.val() === '1') { 

     $login.val('dummy1'); 
     $password.val('dummy2'); 

    } else if ($this.val() === '2') { 

     $login.val('dummy3'); 
     $password.val('dummy4'); 

    } 

}).change();