Javascript 空字段无法正确验证

标签 javascript ckeditor

嗯,我有一个由 javascript 验证的 html 表单。在此表单中,有一个编辑器文本区域框。当此框为空时,JavaScript 警报消息将显示“页面内容需要”。没关系。

但是填写完内容后,它再次向我显示“页面内容要求”。我的代码有什么问题?

Javascript:

function doStart()
    {       
    var page_name =  document.page.page_name.value; 
    var page_loc = document.page.page_location.value;   

    <?php

    $page_limit =  mysql_query("SELECT menu_name FROM cms WHERE username = '$username' AND cms_location = 1 ");
    $num_page_limite = mysql_num_rows($page_limit);
    ?>
    var num = <?php echo $num_page_limite; ?>


    var page_content = document.page.editor_kama.value; 
    var uploadobj = document.getElementById('myuploader');


    if(page_name == null || page_name == "")
    {
        alert("page name require"); 
        document.page.page_name.focus() ;
        return false;
    }
    else if(page_name.length > 15 )
    {
        alert("page name is too long");
        document.page.page_name.focus() ;
        return false;
    }

    if(page_loc == null || page_loc == "")
    {
        alert("Select page location");  
        document.page.page_location.focus() ;       
        return false;
    }
    else if(num == 5 && page_loc == 1)
    {
        alert("You already creaed 5 pages for your top menu.");
        return false;
    }

    if(page_content == null|| page_content == "")       
    {
        alert("Page content require");  
        return false;
    }

    if (uploadobj.getqueuecount() > 0)
    {
        uploadobj.startupload();
    }
    else
    {
        alert("Please browse files for upload");
    }

}
</script>

HTML 表单:

<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" enctype="multipart/form-data" id="form1"  name="page" onSubmit="return validate()">
    <table width="100%" border="0" cellspacing="10" cellpadding="0" style="float:left; position:relative;">           
    <tr>
    <td valign="top">Page Content</td>
    <td>
    <textarea cols="80" id="editor_kama" name="editor_kama" rows="30" class="textarea"><?php if(isset($_POST['editor_kama'])) echo $_POST['editor_kama'];?></textarea>
     <script type="text/javascript">
       //<![CDATA[

       CKEDITOR.replace( 'editor_kama', {
           skin : 'kama'
       });

       //]]>
    </script>
    </td>
    </tr> 
    <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="Submit" value="Create page" class="submit" id="submitbutton" onclick="doStart();return false;"/></td>
    </tr>
    </table>            
</form>

最佳答案

解决办法是

var page_content = document.page.editor_kama.value;

var page_content = CKEDITOR.instances['editor_kama'].getData();

您的编辑器生成大量代码,您必须使用文档与它们交互。

编辑:

替换page_content == null|| page_content == "" by page_content.length == 0

关于Javascript 空字段无法正确验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634947/

相关文章:

javascript - Vue.js 传递的 Prop 在任何范围内都是未定义的

javascript - 禁用 CKEditor 缩进插件

ckeditor - 用很棒的字体图标替换 CKEditor 工具栏图像

javascript - 使用 <noscript> 回退的 DRY 延迟加载图像

javascript - 无法提醒 javascript 变量

javascript - 不使用 jquery 将 UL LI 转换为 Accordion

jquery - CKEDITOR 和 jquery 拖放使内容消失

ckeditor 使对话框元素只读或禁用

javascript - 在 CKEditor 中修改表单元素

javascript - 滚动日期时间选择器 jQuery