【发布时间】:2020-07-29 20:34:27
【问题描述】:
我需要根据我的用户将在文本字段中输入的内容来选择一个下拉选项。文本字段是一个数字,下拉列表将数字放在一个范围内,以根据所选价格范围计算总和。
处理这个问题的表格部分是:
<input name="input_12" id="input_1_20" type="text" value="" class="medium">
<select name="input_15" id="input_1_15">
<option value="0-100 beds|10" price="">0-100 beds </option>
<option value="101-250 beds|7.5" price=" -£ 2.50">101-250 -£ 2.50</option>
<option value="251-500 beds|5" price=" -£ 5.00">251-500 -£ 5.00</option>
<option value="501+ beds|2500" price=" +£ 2,490.00">501+ beds +£ 2,490.00</option>
</select>
我使用的javascript是:
<script>
jQuery('#input_1_20').change(function() {
var selectObj = document.getElementById('input_1_15');
var bedNumber = document.getElementById('input_1_20') ;
if (bedNumber <= '100') {
setSelectedValue(selectObj, "0-100 beds|10"); }
else if (bedNumber <= '250') {
setSelectedValue(selectObj, "101-250 beds|7.5"); }
else if (bedNumber <= '500') {
setSelectedValue(selectObj, "251-500 beds|5"); }
function setSelectedValue(selectObj, valueToSet) {
for (var i = 0; i < selectObj.options.length; i++) {
if (selectObj.options[i].text== valueToSet) {
selectObj.options[i].selected = true;
return;
}
}
}
})
</script>
我没有收到任何 javascript 错误,但选择字段没有更新。谁能给点建议?
更新:链接到 Fiddle - https://jsfiddle.net/xg6ktr1a/
谢谢!
【问题讨论】:
-
bedNumber是一个元素,而不是数字或字符串。你需要.value关闭它来获取字符串值。 -
另外,请注意不要在更改事件处理程序中声明
setSelectedValue函数。范围太小,每次都会重新创建它。该方法的内容中没有任何内容需要这样构造。 -
我仍然无法让它工作:(((我试过 bedNumber = getElementById('id').value; 和 parseInt(getElementById('id').value); 和还是什么都没有……
标签: javascript forms dropdown