基本上我正在尝试用选定的选项和输入值创建一个计算,当任何用户选择option 1
和input=2
时输出结果为10(选项值)* 2 = 20 。
所以我写这段代码:
的 HTML
<select id="totaldays">
<option value="10">option 1</option>
<option value="20">option 2</option>
<option value="30">option 3</option>
</select>
<input type="text" name="per_day" id = "mytextfield" value="" />
<p>Total: $<span class="total"></span></p>
JQ
$("#mytextfield").on('keyup',function(){
// alert('pressed')
var totalcost= $("#totaldays").val() * $(this).val()
$(".total").html(totalcost);
})
工作正常但是在系列项目上使用并不是一个好主意,因为它可以从检查器更改并获得错误的输出。所以,我试图通过id获取值。我写这段代码但它不起作用:
<select id="totaldays">
<option id="a">option 1</option>
<option id="b">option 2</option>
<option id="c">option 3</option>
</select>
<input type="text" name="per_day" id = "mytextfield" value="" />
<p>Total: <span class="total"></span></p>
JQ
$("#mytextfield").on('keyup',function(){
// alert('pressed')
if($("#totaldays").children(":selected").attr("id") == 'a') {
var getvalue= $(this).val() == '10'
}
if($("#totaldays").children(":selected").attr("id") == 'b') {
var getvalue= $(this).val() == '20'
}
if($("#totaldays").children(":selected").attr("id") == 'c') {
var getvalue= $(this).val() == '30'
}
var total= $(getvalue) * $(this).val()
$(".total").html(total);
})
我是jquery的新手。帮助我!
答案 0 :(得分:0)
my_pi
这会将getvalue设置为右侧的结果。在这种情况下,getvalue将设置为true / false,具体取决于输入框中的值是否等于30.
我想您只是想将getvalue的值设置为10,20或30,具体取决于下拉列表中选择的选项,并将输入框的内容与总数的内容相乘?如果是这样的话。
var getvalue= $(this).val() == '30'
一些改进是考虑在选项元素上添加一个value属性,这样你就可以删除JS中的if语句了!