簡體   English   中英

如何將String傳遞給onclick消息?

[英]How can i pass String to onclick message?

public function confirmTransactionButton($confirmationFlag, $buttonName) {
    $disabled = '';
    $warningMessages = 'Watch Out';
    $functionName = "return confirm(" . '\'' . "$warningMessages" . '\'' . ")";
    if ($confirmationFlag == constant("Y.ENUM")) {
        $disabled = 'disabled';
    }
    $button = "<input name='$buttonName' type='submit' class='BUTTON' id='$buttonName' onclick='$functionName' value='" . constant('KONFIRMASI.CON') . "' " . $disabled . " />";

    return $button;
}

誰能幫我這個問題,警報對話框將不會出現。

我的情況下,我將字符串更改為數字,它的工作

$warningMessages = 'Watch Out';    
$functionName = "return confirm(" . '\'' . "$warningMessages" . '\'' . ")";

$warningMessages = '123';
$functionName = "return confirm(".$warningMessages.")";

問題是您正在為JS字符串和HTML屬性值使用相同的分隔符,這會過早地終止屬性值。 查看生成的源,您將看到:

看起來像

<input ... onclick='confirm('foo')' />

您看到問題了嗎(語法高亮顯示有幫助)?

您可以使用不同的引號解決此問題:

$functionName = "return confirm(" . '"' . "$warningMessages" . '"' . ")";
//                                   ^                          ^

因此,您的HTML將成為

<input ... onclick='confirm("foo")' />

當然,最好的解決方案是根本不使用內聯事件處理程序。 查看這些文章,以了解有關事件處理的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM