【问题标题】:Implementing JavaScript in a PHP file (WordPress)在 PHP 文件中实现 JavaScript (WordPress)
【发布时间】:2014-04-03 10:54:57
【问题描述】:

我想将 JavaScript 添加到我的插件 php 文件中,以便仅在用户选中条款和条件复选框时才启用“结帐”按钮。

我在另一个用户的问题中找到了这个解决方案 - 但我在 wordpress 中将它实现到我的 php 文件时遇到了麻烦。

How do i disable a submit button when checkbox is uncheck?

我已经创建了复选框并修改了此函数中的按钮代码,如下所示:

function OutputContent_OnlineCheckoutButton()
    {
        echo '<input type="checkbox" id="checky"> I have read and agree to the <a href="#">terms and conditions</a>.<br/><input class="button-primary" id="postme" type="submit" disabled="disabled" name="'.$this->GetButtonID('checkout').'" value="'.__('Checkout', $this->myDomain).'"/>'."\n";

echo '<script language='JavaScript'>
$('#checky').click(function(){
     $('#postme').attr("disabled",!this.checked);   
});
</script>

'."\n";

    }

但是 javascript 似乎无法正常工作,我应该如何实现 javascript 才能使其正常工作?

提前致谢。

PS

这是我自己的按钮的原始代码。

function OutputContent_OnlineCheckoutButton()
    {
        echo '<input class="button-primary" type="submit" name="'.$this->GetButtonID('checkout').'" value="'.__('Checkout', $this->myDomain).'"/>'."\n";
    }

【问题讨论】:

    标签: javascript php wordpress button checkbox


    【解决方案1】:

    在 PHP 文件中,不在 &lt;?php?&gt; 之间的所有内容都会直接复制到输出中。因此,您应该简单地将内容包含在&lt;?php ... ?&gt; 标签之外的部分中,以便直接将其写入输出,而不是创建一个逐字回显内容的函数。话虽如此,这仍然是组织代码的一种糟糕方式。最好将您的 JavaScript 移动到外部文件,然后在页面底部放置一个

    我应该补充一点,您的示例代码为“语言”指定了一个无效值。对于 JavaScript,您应该完全省略该语言,因为当它被省略时,它被理解为 JavaScript。 (此外,您可能将“语言”与“类型”混淆了。JavaScript 的类型是“文本/javascript”,但是——正如我之前写的——你应该完全省略这个属性,因为它是多余的,并且在缺席的情况下可以理解)。

    【讨论】:

    • 您好,感谢您的回答。我接受了您的建议并将脚本放在一个单独的文件中,然后我将 javascipt 文件链接到插件的另一个文件中,其中定义了所有其他脚本。页面加载时会调用 javascript 文件,因为我可以在源代码(称为 tcbutton.js)中看到它,但仍然无法正常工作。请你看一下,我的网站是:pprinces.x10.mx/site/events
    【解决方案2】:

    基于此很难为你测试,但至少可以避免这个错误:

    echo '<script language='JavaScript'>
    

    将不起作用,因为您在 ' 中有 '。你应该这样逃避它们:

    echo '<script language=\'JavaScript\'>
    

    或使用":

    echo '<script language="JavaScript">
    

    【讨论】:

    • 属性也应该是type="text/javascript",对于HTML5我相信可以完全省略。
    • 可能是真的,虽然这会起作用,所以这本身不是 OP 的问题
    猜你喜欢
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    相关资源
    最近更新 更多