2017-09-16 83 views
0

我試圖在更改時獲取下拉列表的值。我已經意識到onchange函數只有在我們顯式更改下拉列表的值時纔有效。如何檢測下拉值更改時的值

當複選框選中它將進入selectChangeHandler函數將任何默認值設置爲dropdown同時下拉選擇的值也應該警告確保它從下拉的onchange函數加載而不是來自selectChangeHandler。我能夠得到下拉值,當我通過使用onchange函數顯式更改,但第一次當我選擇複選框什麼默認值設置哪些不是從onchange函數出現。 。

請幫我弄清楚這一點。

function selectChangeHandler() { 
 
    //get option with value 3 and set selected 
 
    $("#cityNames option[value=3]").prop('selected', 'selected');  
 
} 
 

 
$(document).ready(function() { 
 
    $("select").change(function() { 
 
     alert("you have changed the value "); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!-- CheckBox start--> 
 
Do you want to Select City ? <input type="checkbox" name="checkbox1" onclick = "selectChangeHandler()" /> 
 
<!-- CheckBox end--> 
 
</br></br> 
 
<!-- City DropDown Construction start--> 
 
<select id="cityNames" class="selectChange"> 
 
    <option value="1" selected>USA</option> 
 
    <option value="2">SA</option> 
 
    <option value="3">INDIA</option> 
 
    <option value="4">CANADA</option> 
 
</select> 
 
<!--City DropDown Construction End --> 
 
</br></br> 
 

 
<!-- input text box which display value control has forwarded from dropdown --> 
 
<input type="text" name="cityName" disabled><br> 
 
<!-- input text box which display value control has forwarded from dropdown -->

請幫我算出這個

+0

可以在任何一個請幫助 –

+0

見下面我的代碼和問題的鏈接,讓我知道,如果你有問題。 – MUlferts

+0

請編輯你的問題,它不清楚你在問什麼,請檢查下面的解決方案。 – bhansa

回答

1

有很多這樣的例子在其他SO問題,像這樣的:jQuery Get Selected Option From Dropdown。下面是應該與你的代碼的示例:

function selectChangeHandler(){ 
    //get option with value 3 and set selected 
    $("#cityNames option[value=3]").prop('selected', 'selected'); 

} 

$(document).ready(function() { 
    $("#checkbox1").change(function() { 
     if ($(this).is(":checked")){ 
       selectChangeHandler(); 
     }; 
    }); 
    $("#cityNames").change(function() { 
     var selectValue = $(this).val() 
     alert("you have changed the value " + selectValue); 
    }); 
}); 

我會強烈建議你通過了jQuery在http://try.jquery.com/學習課程。這是一個關於jquery的非常好的教程,它會幫助你確定一個好的開始。

+0

@Mihael:感謝您的幫助,但是如果第一次檢查複選框時沒有出現提醒框,該怎麼辦 –

+0

您希望僅在複選框被選中時顯示提醒? – MUlferts

+0

是的。每當選中複選框時,選中的值也是我想要顯示的 –

0

你可以得到的價值,同時改變這樣

function selectChangeHandler() { 
 
    //get option with value 3 and set selected 
 
    $("#cityNames option[value=3]").prop('selected', 'selected'); 
 
} 
 

 
$(document).ready(function() { 
 
    $("#cityNames").change(function() { 
 
     alert($(this).val()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!-- CheckBox start--> 
 
Do you want to Select City ? <input type="checkbox" name="checkbox1" onclick = "selectChangeHandler()" /> 
 
<!-- CheckBox end--> 
 
</br></br> 
 
<!-- City DropDown Construction start--> 
 
<select id="cityNames" class="selectChange"> 
 
    <option value="1" selected>USA</option> 
 
    <option value="2">SA</option> 
 
    <option value="3">INDIA</option> 
 
    <option value="4">CANADA</option> 
 
</select> 
 
<!--City DropDown Construction End --> 
 

 
<br><br> 
 

 
<!-- input text box which display value control has forwarded from dropdown --> 
 
<input type="text" name="cityName" disabled><br> 
 
<!-- input text box which display value control has forwarded from dropdown -->