通过隐藏输入传递javascript变量

时间:2014-06-27 17:51:47

标签: javascript jquery html5

好的,我有javascript来计算HTML表单的动态价格。代码如下:

jQuery("input[name='Amount']").change(function() {
if (isNaN(parseFloat(this.value)) || !isFinite(this.value)) {
jQuery(this).val('');
return false;
}
var calc = parseFloat(this.value) * 0.95;
jQuery(this).parents("form").find("input[name='price']").val(calc);
});

这个,输入:

<input class="irrelevant typeahead" type="text" placeholder="Amount" name="Amount"/>

javascript获取该值,计算价格,我希望它填写此内容:

<input type="hidden" name="price" value=""/>

我相信我的javascript是正确的。为了让它起作用,我需要做些什么呢?

1 个答案:

答案 0 :(得分:0)

确保将这些项目包装在<form>标记中。

<form>
    <input class="irrelevant typeahead" type="text" placeholder="Amount" name="Amount"/>
    <br />
    <input type="hidden" name="price" value=""/>
</form>


jQuery("input[name='Amount']").change(function() {
    if (isNaN(parseFloat(this.value)) || !isFinite(this.value)) {
        jQuery(this).val('');
        return false;
    }
    var calc = parseFloat(this.value) * 0.95;
    jQuery(this).parents("form").find("input[name='price']").val(calc);
});

我在这里有一个工作演示:http://jsfiddle.net/P55ge/

在演示中,我将价格输入设为文本字段而不是隐藏字段,以便于查看设置的值。

另请注意,只有在输入有效数字然后单击字段输入时才会更新该字段。以下引用来自.change() http://api.jquery.com/change/

的jquery文档
  

现在,当从下拉列表中选择第二个选项时,警报就是   显示。如果更改字段中的文本,也会显示它   然后单击。如果该领域在没有内容的情况下失去焦点   但是,这个事件没有被触发。