1

ページの読み込み時に PHP によって入力されるテキスト入力フィールドがあります。

<?php
$product_price = 10000;
?>

<input type='text' name='product_price' value='<?=$product_price?>' >

商品価格が 12000 未満かどうかをチェックする JavaScript コードがあります。そうであれば、アラートを出します。

if(product_price <= 12000){
    alert("product price must be above 12000");
}

アラートは正常に機能していますが、入力フィールド product_price の値を 50000 に変更しても、「製品価格は 12000 を超えている必要があります」というメッセージが引き続き表示されるという問題があります。

フィールドに入力した値を JS が取得できないのはなぜですか? PHP の値が変更されないのはなぜですか?

4

2 に答える 2

1

入力ボックスの内容は文字列です。parseInt()12000 以下かどうかを確認する前に変換するために使用します。

if(parseInt(product_price, 10) <= 12000){
    alert("product price must be above 12000");
}

入力フィールドと変数の間にバインディングがないため、これは PHP 変数を更新しません。JavaScript はクライアントで実行され、PHP コードはサーバーで実行されます。ユーザーから入力を受け取りたい場合は、ページをリロードせずに更新するために、フォーム送信 GET/POSTまたはAjax のいずれかを使用する必要があります。

于 2012-11-07T07:55:19.673 に答える
1

ユーザーがキーを押すたびに、javascript product_price変数が入力フィールドの現在の内容で更新されるように、入力フィールドを変更する必要があります。

<input type="text" name="product_price" onkeypress="product_price = this.value" value="<?=$product_price?>" >

ユーザー入力を検証するための keypress イベントの処理を関数に委譲することをお勧めします。

<input type="text" name="product_price" onkeypress="updateProductPrice(this)" value="<?=$product_price?>" >

function updateProductPrice(input) {
    product_price = input.value;
}
于 2012-11-07T09:02:26.977 に答える