1

我有一个文本输入字段,在页面加载时由 PHP 填充。

<?php
$product_price = 10000;
?>

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

我有一些 JavaScript 代码可以检查产品价格是否低于 12000。如果是,我会发出警报。

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

警报工作正常,但问题是如果我将输入字段 product_price 的值更改为 50000,它仍然提示我“产品价格必须高于 12000”

为什么 JS 无法将我输入的值带入该字段?为什么 PHP 填充的值没有改变?

4

2 回答 2

1

您必须修改输入字段,以便每当用户按下某个键时,javascript product_price变量都会更新为输入字段的当前内容。

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

最好将按键事件的处理委托给函数以验证用户输入。

<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 回答
1

输入框的内容是一个字符串。用于parseInt()在检查它是否小于或等于 12000 之前对其进行转换。

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

这不会更新 PHP 变量,因为输入字段和变量之间没有绑定。JavaScript 在客户端运行,而 PHP 代码在服务器上运行。如果您希望从用户那里获取输入,则必须使用表单提交 GET/POSTAjax 进行更新,而无需重新加载页面

于 2012-11-07T07:55:19.673 回答