帝国CMS提交表单时出现“带*项为必填”的提示
帝国cms提交表单出现“带*项为必填”是因为在表单中设置了必填项,而用户没有填写这些必填项。为了解决这个问题,可以在提交表单之前检查用户是否填写了所有必填项,如果没有填写,则提示用户填写。具体实现方法如下: 1. 获取表单中所有带有星号(*)的输入框; 2. 遍历这些输入框,检查它们的值是否为空; 3. 如果发现有空值,则弹出提示框,告诉用户哪些项是必填项,并返回到相应的输入框让用户重新填写。
上周试着提交了一下表单,结果出现“带*项为必填”,所有的必填都填上了为什么还提示了?试着用排除法来一步步测试。
1、表单代码是否都包含了字段中规定的必填项
2、代码中是否有其他未知的代码(考虑到有人恶意更改)
3、检查系统登录和操作日志(看是否有其他人登录更改过系统设置,有更改过防火墙和安全参数)
4、检查和重置防火墙和安全参数(问题依然存在)
5、刷新所有页面和缓存(问题依然存在)
6、检查所有文件读写权限(正常)
7、新建一个只有一项必填项的表单测试,选择自动生成表单(还是测试是否是表单代码问题,结果确定不是)
8、网上搜寻解决办法
a、表单form标签中有这么一条:enctype='multipart/form-data',将其删除(试验后问题未解决)
b、表单提交页面地址缺少bid变量(我的正确,排除此项)
c、表单中添加<input name='bid' type='hidden' value='分类bid'>这个隐藏项(分类bid这里改成当前表单的分类数字,成功解决问题)
问题总结,之前更改过网站安全参数,似乎是因此导致在地址中通过get传递的bid无法正常被接收,加入第8项c中的代码后通过post提交bid参数,成功接收