设置选定的选项值

时间:2017-09-14 19:21:03

标签: javascript jquery

基本上我正在尝试用选定的选项和输入值创建一个计算,当任何用户选择option 1input=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的新手。帮助我!

1 个答案:

答案 0 :(得分:0)

在Javascript中

my_pi这会将getvalue设置为右侧的结果。在这种情况下,getvalue将设置为true / false,具体取决于输入框中的值是否等于30.

我想您只是想将getvalue的值设置为10,20或30,具体取决于下拉列表中选择的选项,并将输入框的内容与总数的内容相乘?如果是这样的话。

var getvalue= $(this).val() == '30'

一些改进是考虑在选项元素上添加一个value属性,这样你就可以删除JS中的if语句了!