2012-04-10 103 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();