[英]jQuery: if statement to select an option value
我的目標是:
在 jQuery 的幫助下,我希望在給定字段“值”的情況下自動更改“結果”
我有一個表單,包含一個輸入 integer 字段,id 為“value”,表單有一個選項字段,id 為“result”。
以下是我的嘗試,但它不起作用。
感謝您的輸入。
var value = $('#value'); $(value).change(function() { debugger; if (Number($(this).val()) > 60) { $('#result').prop('value') = "Long"; } if (Number($(this).val()) < 60) { $('#result').prop('value') = "Short"; } })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <label for="value" class="col-form-label col-sm-4">Value</label> <div class="col-sm-7"> <input type="number" name="value" class="numberinput form-control" id="value"> </div> </div> <div><i>Result:</i></div> <div id="result" class="form-group row"> <div class="col-sm-12"> <select name="result" class="select2 form-control" style="width: 100%;" id="result"> <option value="Long">Long</option> <option value="Short">Short</option>
您可以使用.val(....)
設置所選值。
var value = $('#value'); $(value).change(function() { debugger; if (Number($(this).val()) > 60) { $('select').val("Long"); } if (Number($(this).val()) < 60) { $('select').val("Short"); } })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <label for="value" class="col-form-label col-sm-4">Value</label> <div class="col-sm-7"> <input type="number" name="value" class="numberinput form-control" id="value"> </div> </div> <div><i>Result:</i></div> <div id="result" class="form-group row"> <div class="col-sm-12"> <select name="result" class="select2 form-control" style="width: 100%;" id="result"> <option value="Long">Long</option> <option value="Short">Short</option>
除此之外,您在 HTML 中存在一些問題,您已經多次使用相同的 ID ( result
)。 ID 是唯一的。
正如@Archer 所提到的,如果值為60
,則兩個當前條件都不匹配,您需要進行>=
或<=
比較來解決這些情況。
我在這里看到的三件事:
.prop('value') = 'Long'
,這是無效的 JavaScript,只需使用.val('Long')
。所以更像這樣:
var value = $('#value'); $(value).change(function() { debugger; if (Number($(this).val()) > 60) { $('#result').val('Long'); // 1. Setting the value correctly with jQuery } if (Number($(this).val()) < 60) { $('#result').val('Short'); } })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <label for="value" class="col-form-label col-sm-4">Value</label> <div class="col-sm-7"> <input type="number" name="value" class="numberinput form-control" id="value"> </div> </div> <div><i>Result:</i></div> <div class="form-group row"> <.--- 2: Removing the errant ID ---> <div class="col-sm-12"> <select name="result" class="select2 form-control" style="width; 100%." id="result"> <option value="Long">Long</option> <option value="Short">Short</option> </select> <!--- 3. Correcting the remaining HTML ---> </div> </div>
// No need to wrap '#value' twice with jQuery function $('#value').change(function() { // You do not need two ifs, since the two value are exclusive const option = $(this).val() > 60? "Long": "Short"; // You had two different elements with the id "result" // and.val is a function, you can pass the new value as argument $('#selection').val(option); })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <label for="value" class="col-form-label col-sm-4">Value</label> <div class="col-sm-7"> <input type="number" name="value" class="numberinput form-control" id="value" /> </div> </div> <div><i>Result:</i></div> <div id="result" class="form-group row"> <div class="col-sm-12"> <select name="result" class="select2 form-control" style="width: 100%;" id="selection"> <option value="Short">Short</option> <option value="Long">Long</option> </select> </div> </div>
i think,it will help you
<script src="Scripts/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function () {
$("#value").on('input', function () {
var value = parseInt($("#value").val());
if (value > 60) {
$("#result").prop("value", "Long");
}
if (value <= 60) {
$("#result").prop("value", "Short");
}
});
});
</script>
<input type="number" name="value" class="numberinput form-control" id="value" />
<select name="result" class="select2 form-control" style="width: 100%;" id="result">
<option value="Short">Short</option> <option value="Long">Long</option>
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.