在使用DedeCMS自定义表单时,确保必填项的有效性是一个重要的步骤。这不仅有助于提高用户体验,还能确保数据的完整性和准确性。以下是两种常见的方法来实现必填项的判断:PHP验证和JavaScript验证。


1. PHP验证方法

通过修改DedeCMS的核心文件,可以轻松实现对必填项的验证。以下是具体步骤:


plus/diy.php 文件的第40行下方添加以下代码:


// 增加必填字段判断
if($required != '') {
    if(preg_match('/,/', $required)) {
        $requireds = explode(',', $required);
        foreach($requireds as $field) {
            if($$field == '') {
                showMsg('带*号的为必填内容,请正确填写', '-1');
                exit();
            }
        }
    } else {
        if($required == '') {
            showMsg('带*号的为必填内容,请正确填写', '-1');
            exit();
        }
    }
}
// end
    

接着,在模板的表单中添加一个隐藏字段:


<input type="hidden" name="required" value="name,qq" />


其中,value 属性值表示需要验证的字段名称,多个字段之间用逗号分隔。


2. JavaScript验证方法

除了PHP验证外,还可以通过前端JavaScript来实现必填项的检查。这种方法的优点是用户无需提交表单即可即时获得反馈。


首先,在发布表单的模板中引入JavaScript文件:


<script src='你的路径/js.js' type="text/javascript"></script>


然后,在指定路径下创建 js.js 文件,并添加以下代码:


$(document).ready(function() {
    // 验证
    $('#complain').submit(function () {
        if($('#name').val() == "") {
            $('#name').focus();
            alert("用户名不能为空!");
            return false;
        }
        if($('#tel').val() == "") {
            $('#tel').focus();
            alert("联系电话不能为空!");
            return false;
        }
        if($('#title').val() == "") {
            $('#title').focus();
            alert("标题不能为空!");
            return false;
        }
        if($('#text').val() == "") {
            $('#text').focus();
            alert("具体内容不能为空!");
            return false;
        }
    });
});
    

注意:
#complain 是表单的ID,如果生成的表单没有此ID,可以在HTML中手动添加,例如:id="complain"
#name#tel 等是需要验证的字段ID,确保这些字段在后台设置时与实际使用的字段名一致。


完成以上设置后,更新网站缓存即可看到效果。


通过这两种方法,您可以有效地保证DedeCMS自定义表单中必填项的完整性,从而提升用户体验和数据质量。