2012-03-28 75 views
1

我有6個不同的選擇框和一個文本字段,我需要從jQuery中獲取值並將其合併到一個文本字段中。jQuery:從多個字段中獲取值並在文本字段中顯示

我明白我基本上將打造爲targetTextField價值,像這樣的字符串:$('#targetTextField').val(opt1+opt2+opt3+opt4+opt5+opt6+textField);

我應該使用什麼來獲取的select#options1價值和變換中opt1

難道是沿着opt1 = $('select#options1').val();的方向嗎?還是我完全朝着錯誤的方向走?

我在創建了一個基本的jsfiddle只有兩個選項:

http://jsfiddle.net/e2ScF/2/

jQuery的

$(function() { 
    $("#options").change(function(){ 
    var opt1 = $('select#options').val() 
    }$('#targetTextField').val(opt1+opt2); 
}); 
    $("#options2").change(function(){ 
    var opt2 = $('select#options2').val() 
    }$('#targetTextField').val(opt1+opt2); 
}); 
});​ 

HTML

<select id="options"> 
    <option value="" selected>Choose...</option> 
    <option value="opt1Value1" >Option 1</option> 
    <option value="opt1Value2" >Option 2</option> 
</select> 
<select id="options2"> 
    <option value="" selected>Choose...</option> 
    <option value="opt2Value1" >Option 1</option> 
    <option value="opt2Value2" >Option 2</option> 
</select> 
<input type="text" id="targetTextField" name="targetTextField" size="31" tabindex="0" maxlength="99">​ 

...但它不似乎在工作,所以我顯然被誤解或錯過了一些東西。

+0

你已經在你的問題中得到你的答案:) – 2012-03-28 09:07:36

+0

你有一個選擇框有六個選項或性別選擇框? – 2012-03-28 09:08:40

+0

6個獨立的選擇框和文本字段 – 2012-03-28 09:11:04

回答

2

我做了這個演示給你,希望它有助於

http://jsfiddle.net/e2ScF/5/

$(function() { 
$("#options").change(function(){ 
     setTarget() ; // Something has changed so lets rebuild the target 
}); 
    $("#options2").change(function(){ 
     setTarget();// Something has changed so lets rebuild the target 
}); 
}); 

// Just get the values you want and update the target 
function setTarget(){ 
    var tmp = $("#options").val(); 
    tmp += $("#options2").val(); 
    $('#targetTextField').val(tmp); 
} 
​ 
+0

謝謝,那太棒了。如果我要添加#options3,那麼我會在'tmp + = $(「#options2」)。val();'之後添加'tmp + = $(「#options3」).val();'另外,我會添加什麼來獲取文本字段的值(比如說ID#options3? – 2012-03-28 09:40:29

+0

是的,它是正確的,只需添加另一個* tmp + = $(「#options2」).val(); *。爲textfield工作也只需使用val函數;-) – 2012-03-28 09:42:36

+0

我更新了演示。但是,文字區域上的更改方法會在失去焦點後觸發。 – 2012-03-28 09:44:01

0

的下拉嘗試以下

$('select option:selected').text() 
0

看看this它應該有希望給你的,你需要做的的指針。 您可以將名稱更改爲類,然後只提供您想要在輸入中顯示的格式。但是從你的問題推測它應該是關於這個的。

+0

看看是什麼? – 2012-03-28 09:29:44

+0

抱歉鏈接沒有正確進入它現在有 – Qpirate 2012-03-28 09:30:51

0

如果你有一個選擇框

var toalopt=$('select option1:selected').text(); 
    toalopt+=$('select option2:selected').text(); 
    toalopt+=$('select option3:selected').text(); 
    toalopt+=$('select option4:selected').text(); 
    toalopt+=$('select option5:selected').text(); 
    toalopt+=$('select option6:selected').text(); 

    document.getElementById('id where you want to club data').innerHTML=toalopt; 

不同的ID如果你有相同的ID

$(document).ready(function(){ 
    $('#optionvalue).click(function(){ 
     var values =''; 
     $('select[name="sameid"]').each(function(index,item){ 
      values +=$(item).val() +' '; 
     }); 
      $('id where you want to club data').val(values); 
    }); 

}); 

HTML將是正常的選擇標籤與ID。

0

首先,添加一個類每個select元素,以更好地識別它們作爲一個羣體:

<select id="options" class="auto-updater"> 
    <option value="" selected>Choose...</option> 
    <option value="opt1Value1" >Option 1</option> 
    <option value="opt1Value2" >Option 2</option> 
</select> 

<select id="options2" class="auto-updater"> 
    <option value="" selected>Choose...</option> 
    <option value="opt2Value1" >Option 1</option> 
    <option value="opt2Value2" >Option 2</option> 
</select> 

<input type="text" id="targetTextField" name="targetTextField" size="31" tabindex="0" maxlength="99"> 

然後在jQuery中,你可以使用map()創建值的數組並顯示它們:

$(".auto-updater").change(function() { 
    var values = $(".auto-updater").map(function() { 
     return ($(this).val() == "") ? null : $(this).val(); // ignore default option select 
     // return $(this).val(); // include all values 
    }).get(); 

    $("#targetTextField").val(values.join(',')); 
}); 

Example fiddle

你可以看到,我已經將此設爲忽略select元素WHI ch留在他們的默認值。如果取消註釋下面的行,它將包括所有選擇,而不管所選的值如何。

0

你需要如下最少的代碼:

$(function() { 
     $("select").change(function(){ 
      var opts=$('option:selected').val(); 
      var oldVal=$('#targetTextField').val(); 
      $('#targetTextField').val(oldVal+opts); 
    }); 
});​ 

找到的jsfiddle演示here

相關問題