我正在使用新信息对此进行编辑,以澄清我的问题。
我有以下代码。这是用WHMCS使用的聪明语言。
{if $ errormessage} {$ LANG.clientareaerrors}
重要的部分是“$ promotioncode&& $ rawdiscount eq”0.00“
因此,在我的输入框中,我想运行applypromo,如果条件无效,则会显示警报('优惠券对此产品无效')。
我想要做的是检查promocode是否与所选产品相关联,如果不是,则显示消息。我查了一些他们这样做的推车,它有一段与此类似的代码:
这用于我们的智能语言程序(WHMCS)。如果您有任何建议,请告诉我。
答案 0 :(得分:2)
为什么不将if
放在事件处理程序中并从PHP传递参数(如您在评论中所要求的那样)?:
<a onclick="return handler(<?php echo $type;?>)" ...
使用Javascript:
function handler1() {
// do something
}
function handler2() {
// do something else
}
// this one is called
function handler(type) {
if(type === 1) {
handler1();
} else if($type === 2) {
handler2();
} else {
alert('Bad type: ' + type);
}
// return false(!) otherwise your browser will go and visit the cliked link's
// target url too. (thanks @DarkSide)
return false;
}
答案 1 :(得分:1)
<span onclick="if(condition){do_foo();}else{do_bar();}return false;">
click me
</span>
答案 2 :(得分:1)
所以你的问题实际上是关于聪明的模板语言。
我相信你可以使用聪明的三元语法:
<input type="submit" value="Apply" onclick="{($promocode=="DEMO")?'function1()':'function2()'}" />
答案 3 :(得分:0)
尝试:
<input type="submit" value="Apply" onclick="<?= ($promocode === 'DEMO') ? 'function1();' : 'function2();' ?>" />
答案 4 :(得分:0)
onclick = "function() {
if(condition) {
//do something
}
else if(condition) {
//do something else
}
}"
然而,在javascript文件的代码中监听事件比将其包含为onclick属性更好。
答案 5 :(得分:0)
<input type="submit" value="Apply" data-prom="$promocode"
onclick=if{ this.dataset.prom =="DEMO"}"function1();{else}function2();" />
如果你想将一些数据从后端绑定到元素并在前端使用它
你可以使用data- *属性并使用this.dataset获取它。*
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
http://jsfiddle.net/G4qWb/这是一个可以使用的小演示