-1

我无法验证下面的文本区域,不知道我的代码有什么问题。

<div id="chooseForm">
    <input type="checkbox" name="ArticlesOrderForm" value="ArticlesOrderForm">
    <b>Articles Order Form </b>
</div>';



$echo .= '  <script>
        jQuery(function($) {
            $(".formGroup").hide();
            $("#chooseForm input:checkbox").on("change", function() {
                if($(this).is(":checked")) {
                    $("#" + $(this).val()).show();
                }
                else {
                    $("#" + $(this).val()).hide();
                }
            });
        });

    </script>';



     $echo .=  '<div id="ArticlesOrderForm" class="formGroup">
                <legend>Articles Order Form</legend>
                <b><label for="article_keywords">Keywords/Titles<span class="reqd">*</span> : </label></b> <textarea rows="6" cols="50" id="article_keywords" name="article_keywords" > </textarea>
            </div>';
<br/><br/>

if($_POST['ArticlesOrderForm'] == 'checked') {  

  if(!isset($_POST['article_keywords']) || empty($_POST['article_keywords'])) {
    $myerror= '<li>'.__('<strong>Keywords/Titles</strong> - missing.','article_keywords').'</li>';
    }   
}



如果有人没有进入该文本区域,我应该收到一条消息“关键字/标题 - 缺失”。有人可以告诉我我的逻辑有什么问题吗?

请在此处找到完整代码:http: //jsfiddle.net/DTcqk/3/ 和此处:http: //jsfiddle.net/YYAbm/

4

2 回答 2

2

默认情况下,您的 textarea 不为空:

<textarea rows="6" cols="50" id="article_keywords" name="article_keywords" > </textarea>
                                                    you have space here ----^

所以它不会输入您的以下内容if

if(!isset($_POST['article_keywords']) || empty($_POST['article_keywords'])) {

trim()如果你想在你的验证中捕获只有空格的变量,你应该使用if,如下所示:

$_POST['article_keywords'] = trim($_POST['article_keywords']);
if(!isset($_POST['article_keywords']) || empty($_POST['article_keywords'])) {
于 2012-10-23T22:05:52.730 回答
1

尝试更换

if($_POST['ArticlesOrderForm'] == 'checked') {  

if($_POST['ArticlesOrderForm'] == 'ArticlesOrderForm') { 

输入类型复选框不发布“选中”它发布复选框的值属性。

于 2012-10-23T21:52:16.590 回答