我无法验证下面的textarea,不知道我的代码有什么问题。
<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/
答案 0 :(得分: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'])) {
答案 1 :(得分:1)
尝试替换
if($_POST['ArticlesOrderForm'] == 'checked') {
与
if($_POST['ArticlesOrderForm'] == 'ArticlesOrderForm') {
输入类型复选框未发布“已选中”它会发布复选框的值属性。