确保在服务器上执行此操作,因为任何人都可以看到页面源代码中的代码。此外 $price 在服务器上,并且客户端值对服务器不可用,直到您使用例如 AJAX 将请求发送回服务器
所以像
<form action="purchase.php" id="form1">
Promotion code: <input type="text" name="promotion_code" id="prCode" />
<input type="button" id="prCodeBut" value="Apply" />
Price: <input type="text" readonly="readonly"
name="finalprice" id="fPrice" value="<?PHP echo $price; ?>" />
</form>
JavaScript
演示 1 - 使用点击
var orgPrice = <?PHP echo $price; ?>;
window.onload=function() {
document.getElementById("prCodeBut").onclick=function(){
// hardcoding the promocode is NOT recommended
if (document.getElementById("prCode").value == "<?php echo $promocode; ?>") {
document.getElementById("fPrice").value=orgPrice-10;
}
}
}
演示 2 使用 onkeyup
var orgPrice = <?PHP echo $price; ?>;
window.onload=function() {
document.getElementById("prCode").onkeyup=function(){
// hardcoding the promocode is NOT recommended
if (document.getElementById("prCode").value == "<?php echo $promocode; ?>") {
document.getElementById("fPrice").value=orgPrice-10;
}
}
}
DEMO 3 使用 onblur
var orgPrice = <?PHP echo $price; ?>;
window.onload=function() {
document.getElementById("prCode").onblur=function(){
// hardcoding the promocode is NOT recommended
if (document.getElementById("prCode").value == "<?php echo $promocode; ?>") {
document.getElementById("fPrice").value=orgPrice-10;
}
}
}
Ajax 隐藏促销代码
// delay from http://stackoverflow.com/a/1909508/295783
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$(function() {
$("#prCodeBut").on("keyup",function() {
delay(function() {
$.get("checkPromo.php",{promotion: $("#prCode").val()},function(data) {
$("#fPrice").val(data);
});
},300);
});
});