在jquery.on中设置输入文本字段的值

时间:2014-06-27 10:26:38

标签: jquery

我在输入按钮上使用jquery.on来识别按下了哪个按钮。我想使用输入按钮上的一个属性中的值设置文本字段的值。

jquery

$('input.btne').on('click', function () {
    var btn = $(":input[type=button]:focus");
    var amount = btn.attr("amount"); 
    $("#fee_amount").val(amount);
});

html

<input type="text" id="fee_amount" />
<input type="button" id="idF" class="btne" optionText="My option Text" amount="123.00" value="Edit" />

我试过这样做,但它说未定义     警报($( “#FEE_AMOUNT”)VAL());

金额是正确且存在但不会进入fee_amount字段。任何人都可以对我做错了吗?

2 个答案:

答案 0 :(得分:1)

您在选择器txt_feeamount中提供的错误ID应为fee_amount,因为您输入的内容为fee_amount而不是txt_feeamount

请注意,您可以使用$(this)this代替var btn = $(":input[type=button]:focus");获取活动来源。此处:焦点也没有任何意义。

<强> Live Demo

$('input.btne').on('click', function () {
    $("#fee_amount").val($(this).attr('amount'));
});

定义属性就像你有金额不是好习惯。您应该使用 data-* attributes 。金额属性将是数据金额。

使用数据来定义数据属性

<强> Live Demo

HTML

<input type="text" id="fee_amount" />
<input type="button" id="idF" class="btne" optionText="My option Text" data-amount="123.00" value="Edit" />

的Javascript

$('input.btne').on('click', function () {
    $("#fee_amount").val($(this).data('amount'));
});

答案 1 :(得分:0)

首先,您不应使用amount之类的自定义属性来传达数据;最好使用数据属性:

<input type="text" id="fee_amount" />
<input type="button" id="idF" class="btne" data-amount="123.00" value="Edit" />

其次,要点击当前按钮,您只需引用this

最后,您使用错误的选择器进行文本框插座; #fee_amount vs #txt_feeamount

然后代码变为:

$('.btne').on('click', function() {
    $('#fee_amount').val($(this).data('amount'));
});

Demo