0

wordpress を使用しており、テキスト入力の値が 40 より大きいときにメッセージをスローしようとしています。

<input type="text" name="quantity" size="2" value="<?php echo wpsc_cart_item_quantity(); ?>" />

このテキスト フィールドに 40 より大きい値が含まれている場合にメッセージ (アラート) をスローし、その値を '' にリセットしたいのですが、私の wordpress テーマは jquery 1.71 を使用しています。

jQuery("input[type='text'][name='quantity']").change(function() {
if (this.val >= 41) {
    alert("To order quantity greater than 40 please use the contact form.");
    this.val == '';
    this.focus();
    return false;
}
});

ありがとうございます。</p>

4

2 に答える 2

3

これは選択クエリによって返される DOM 要素であり、jQuery オブジェクトではなく、その種類のオブジェクトでは関数を使用できないため、最初thisに関数でラップする必要があります。$val()

また、括弧を使用して関数を呼び出す必要がありval()ます。そうしないと、関数が返す値ではなく、関数の本体に取り組んでいます。

最後に、割り当てステートメントにタイプミスがあります。少なくとも を実行する必要がありますが、 は変数ではなく関数であるため、機能しませんthis.val = ''val作業コードは次のようになります。

$("input[type='text'][name='quantity']").change(function() {
    if ($(this).val() >= 41) {
        alert("To order quantity greater than 40 please use the contact form.");
        $(this).val('');
        $(this).focus();
    }        
});    
于 2012-04-15T23:12:13.667 に答える
1

さて、あなたはもうすぐそこにいました、使用してください:

jQuery("input[type='text'][name='quantity']").change(function() {
    if (parseInt($(this).val(),10) > 40) {
        alert("To order quantity greater than 40 please use the contact form.");
        this.value == '';
        /* or with jQuery: $(this).val(''); */
        $(this).focus();
        return false;
    }
});

参考文献:

于 2012-04-15T22:50:51.907 に答える