如果条件内的onclick属性为WHMCS购物车的输入标签

时间:2013-11-29 22:55:02

标签: php input onclick smarty whmcs

我正在使用新信息对此进行编辑,以澄清我的问题。

我有以下代码。这是用WHMCS使用的聪明语言。

{if $ errormessage} {$ LANG.clientareaerrors}

    {$ errormessage}
{elseif $ promotioncode&& $ rawdiscount eq“0.00”} {$ LANG.promoappliedbutnodiscount} {/ if}

重要的部分是“$ promotioncode&& $ rawdiscount eq”0.00“

因此,在我的输入框中,我想运行applypromo,如果条件无效,则会显示警报('优惠券对此产品无效')。

我想要做的是检查promocode是否与所选产品相关联,如果不是,则显示消息。我查了一些他们这样做的推车,它有一段与此类似的代码:

这用于我们的智能语言程序(WHMCS)。如果您有任何建议,请告诉我。

6 个答案:

答案 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/这是一个可以使用的小演示