問題描述
選擇不更新 (Select doesn't update)
當我更改選擇選項時,它不會更新值。框內內容的數量必鬚根據選擇選項而改變,但它不起作用。提前致謝。FIDDLE
$(function() {
var all = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz\‑=_!#%&'*{},.\/:?\(\)\[\]@\\$\^*+<>~";
var myLength = $("#mySelect option:selected").val();
function randomAll() {
for (var i = 0; i < myLength; i++) {
var word = all[Math.floor(Math.random() * all.length)];
$('#content').append(word + i++);
}
}
$('#all').click(function() {
$('#content').html('');
randomAll();
});
});
#content {
width: 200px;
height: 50px;
border: 1px solid #333;
margin‑top: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="all">All</button>
<div id="content"></div>
<select id="mySelect">
<option value="4" selected="selected">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
參考解法
方法 1:
You need to bind to its change
event
$('#mySelect').change(function(){
$('#content').val($(this).val());
});
This will set it to the value of the option that is selected when it is changed.
方法 2:
get selected value inside the function
function randomAll() {
var myLength = $("#mySelect option:selected").val();
for (var i = 0; i < myLength; i++) {
var word = all[Math.floor(Math.random() * all.length)];
$('#content').append(word + i++);
}
}
(by user4991434、CWitty、Mohamed‑Yousef)