2016-11-10 128 views
0

我對jQuery不太好,而且我很難解決這個問題。如果我在不同的選擇框中選擇了某個值,我需要更改所選的單選按鈕。jQuery更改選擇框上的單選按鈕更改

<div class="radio-inline" id="sourceDiv" role="group"> 
 
\t <input type="radio" id="sourceBtns1" name="sourceBtn" class="btn btn-lg" value="CN"><label for="sourceBtns1">CHINA</label> 
 
\t <input type="radio" id="sourceBtns2" name="sourceBtn" class="btn btn-lg" value="ID" ><label for="sourceBtns2">INDONESIA</label> 
 
\t <input type="radio" id="sourceBtns3" name="sourceBtn" class="btn btn-lg" value="TH" ><label for="sourceBtns3">THAILAND</label> 
 
\t <input type="radio" id="sourceBtns4" name="sourceBtn" class="btn btn-lg" value="US"><label for="sourceBtns4">UNITED STATES</label> 
 
</div>

<div id="priceSelect"> 
 
<select name="priceSelect" id="priceSelect" class="form-control"> 
 
    \t <option value="FTLW">Domestic Full Truck Load</option> 
 
    \t <option value="PTLW">Domestic Partial Truck Load</option> 
 
    \t <option value="FTL" selected>International</option> 
 
    </select> 
 
</div>

我想獲得的單選按鈕時,在選擇框中選擇 「FTLW」 選項,選擇#sourceBtns4。

這是我正在使用的功能。我沒有收到錯誤,但是我無法使用該功能。我不確定問題是什麼。我嘗試了幾個不同的東西,但都沒有工作。

有什麼建議嗎?

$(document).ready(function() { 
 
\t $('#priceSelect').change(function(){ 
 
\t \t if($(this).val() == 'FTLW'){ 
 
\t \t \t $('#sourceBtns4').prop("checked", true); 
 
\t \t } 
 
\t }); 
 
});

回答

1

你不能有相同的id兩個元素。你的div和你的select都有idpriceSelect。這只是你關心的select

$(document).ready(function() { 
 
\t $('#priceSelect').change(function(){ 
 
     console.log($(this).val()); 
 
\t \t if($(this).val() == 'FTLW'){ 
 
\t \t \t $('#sourceBtns4').prop("checked", true); 
 
\t \t } 
 
\t }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
<select name="priceSelect" id="priceSelect" class="form-control"> 
 
    \t <option value="FTLW">Domestic Full Truck Load</option> 
 
    \t <option value="PTLW">Domestic Partial Truck Load</option> 
 
    \t <option value="FTL" selected>International</option> 
 
    </select> 
 
</div> 
 
    <div class="radio-inline" id="sourceDiv" role="group"> 
 
\t <input type="radio" id="sourceBtns1" name="sourceBtn" class="btn btn-lg" value="CN"><label for="sourceBtns1">CHINA</label> 
 
\t <input type="radio" id="sourceBtns2" name="sourceBtn" class="btn btn-lg" value="ID" ><label for="sourceBtns2">INDONESIA</label> 
 
\t <input type="radio" id="sourceBtns3" name="sourceBtn" class="btn btn-lg" value="TH" ><label for="sourceBtns3">THAILAND</label> 
 
\t <input type="radio" id="sourceBtns4" name="sourceBtn" class="btn btn-lg" value="US"><label for="sourceBtns4">UNITED STATES</label> 
 
</div>

+0

哇,我覺得真正的啞巴。你完全正確。現在它工作正常。 –

+0

嘿@Scott,你可能比我更熟悉這個,爲什麼你不應該使用.on('change',...)而不是.change()?或者那只是選擇?我知道.on()是用於動態事件處理,但總是用on()指定處理程序有什麼不利嗎? – rob

+1

@rob jQuery文檔(https://api.jquery.com/change/)告訴我們'change()''是'.on(「change」,handler)''的快捷方式。 –