1

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

使用我的代码我想说的是,如果输入的文本 = 折扣代码,则将输入的值更改为 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"/>
4

5 回答 5

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

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

此外,您可以按照下面的建议简单地使用 val 并input#discount用作正确的选择器并使用 val() 来获取值,而不是使用 attr


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

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

于 2013-09-10T12:56:57.260 回答
1

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

你想从 $("input[name='discount']") 获取什么?因为这会给你一个 jquery 对象,试试 $("input[name='dicount']").val(); 获取价值,例如:

if('DISTR50' == $("input[name='discount']").val()){
    $("#discount input").attr("value", 50);
}
于 2013-09-10T12:59:45.410 回答
1

只是几个小问题...

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

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

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

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

于 2013-09-10T13:00:12.630 回答
0

尝试这个

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

 if (discountCode === codeEntered) {
    $('#discount').val('50');
 }
于 2013-09-10T12:57:18.793 回答
0

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

你需要这样做:

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

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

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

于 2013-09-10T13:00:52.803 回答