jQuery如果输入文本等于var做某事

时间:2013-09-10 12:54:58

标签: jquery input var attr

我有一个表单可以计算几个输入值的总和(复选框和下拉列表 - 不是用户输入的值)。在表格底部我有一个“折扣代码”框,我希望能够输入一个代码,它需要一定数量的总额。

使用我的代码我试图说,如果输入的文字=折扣代码,请将输入的值更改为50.这是我到目前为止的内容

var discountCode = 'DISTR50';
var codeEntered = $("input[name='discount']");

 if (discountCode = codeEntered) {
    $('#discount input').attr('value',50);
 }

和html:

<input type="text" id="discount" name="discount" class="txt"/>

5 个答案:

答案 0 :(得分:4)

if (discountCode == codeEntered) {
    $('input#discount').attr('value',50);
 }

不要使用=使用==或更好===

除了使用attr之外,你可以简单地使用val,如下所示,并使用input#discount作为正确的选择器,并使用val()来获取值


var discountCode = 'DISTR50';
var codeEntered = $("input[name='discount']").val();

 if (discountCode == codeEntered) {
    $('input#discount').val('50');
 }

答案 1 :(得分:1)

=是赋值,==或===是检查某个东西是否等于另一个。

你想从$(“input [name ='discount']”)获取什么?因为这会给你一个jquery对象,试试$(“input [name ='dicount']”)。val();获取值,即:

if('DISTR50' == $("input[name='discount']").val()){
    $("#discount input").attr("value", 50);
}

答案 2 :(得分:1)

只是一些小问题......

var discountCode = 'DISTR50';
var codeEntered = $("#discount").val();

if (discountCode == codeEntered) {
    $('#discount').val(50);
}

注意我添加了.val()来获取和设置输入值,并将if语句更改为使用==而不是=

我还使用了input元素的ID,因为这比按名称查找输入要快。

答案 3 :(得分:0)

试试这个

var discountCode = 'DISTR50';
var codeEntered = $("input[name='discount']");

 if (discountCode === codeEntered) {
    $('#discount').val('50');
 }

答案 4 :(得分:0)

您无法将对象与值进行比较

你需要这样做:

var discountCode = 'DISTR50';
var codeEntered = $("input[name='discount']").val(); <-- .val()

您正在编写的代码返回codeEntered变量中的对象,您应该使用.val()来获取该对象的值。

比较使用=====(严格比较)