0

我真的无法弄清楚这一点,并且花了很多时间寻找答案,但没有任何效果..

我在 Joomla“自定义 HMTL”模块中创建了一个页面,使用表单和 php,我想创建一个函数来检查字段是否正确并且输入的 emal 是有效的电子邮件。如果不是,我希望显示一条警报消息。

我尝试过使用 php 和 javascript。我认为我的 javascript 工作正常,但 dossent 似乎适用于 Joomla 的“自定义 HTML”模块。

有谁知道如何添加Javascript?还是有更简单的方法来做到这一点?我正在使用 JCE 编辑器和 Joomla 2.5

    function validate_form(thisform) {

     var v1 = document.getElementsByName('name');
     if (v1.value < '!') {
         alert('Feltet navn skal udfyldes');
         v1.focus();
         return false;
     }

     var regex = new RegExp('^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$');
     if (!regex.test(thisform.mail.value)) {
         alert("Email-adressen indeholder ugyldige tegn\r\nEller er på anden måde ikke korrekt udfyldt");
         thisform.mail.focus();
         return (false);
     }

     var v2 = document.getElementsByName('message');
     if (v2.value < '!') {
         alert('Feltet beskrivelse skal udfyldes');
         v2.focus();
         return false;
     }
 }
 </script>

 <form action="http://test.webkjaer.dk/templates/tilbud.php" method="post" enctype="multipart/form-data" onsubmit="return validate_form(this)">
    <table style="width: 575px;" border="0" align="left">
        <tbody>
            <tr>
                <td>Navn <span style="color: #ff0000;">*</span> 
                    <input type="text" name="name" />
                </td>
                <td>E-mail <span style="color: #ff0000;">*</span> 
                    <input type="text" name="email" / >
                </td>

...

4

1 回答 1

0

您最好将其设置为适当的模块,而不是将所有代码添加到自定义模块中并将操作设置为原始 php 文件。在使用 Joomla 时,这是一个糟糕的编码标准,在某些情况下可能会造成安全威胁。

我建议您查看 Joomla 文档上的模块开发:

http://docs.joomla.org/Module_Development

您可能还想节省一点时间并使用模块生成器,它将为模块和 XML 详细信息生成核心文件,因此您只需从功能开始:

http://joomjunk.co.uk/extras/module-generator.html

至于添加导入 Javascript 代码,您将需要使用 JFactory::getDocument(); 方法。我将在下面向您展示一个示例:

$document = JFactory::getDocument;

$js = 'var v1 = document.getElementsByName('name');
       if (v1.value < '!') {
          alert('Feltet navn skal udfyldes');
          v1.focus();
          return false;
       }';
$document->addScriptDeclaration($js);

希望这可以帮助

于 2013-08-13T21:53:11.283 回答