先上图
再上代码
<select>
<option value="0">请选择</option>
<option value="1">一年级</option>
<option value="2">二年级</option>
<option value="3">三年级</option>
</select>
<button type="submit">提交</button>
<script>
var btn = document.getElementsByTagName('button')[0]
btn.onclick = function(){
var s = document.getElementsByTagName('select')[0]
if ( s.value == 0 ) {
alert( 'no' )
} else {
alert( 'yes' )
}
}
</script>
再来个说明
首先,不写 id 不就可以不被 document.getElementById 定位了么。
再者,表单验证是无法判断值是被手动选择的,还是被 js 加上的;它只会判断结果。过程无法判断,否则就不会有某网站遭到批量恶意注册这样的新闻了。
你说的不让 js 写入值,只能根据你的项目做分析。比如是用户注册,你可以通过限制同一个ip多次注册。或者限制填写表单的时间,比如选择值并提交这个过程需要 10 秒后才能提交成功。
var arr=["aaaaa","bbb","cccccccc"]var sels=document.createElement("select")
sels.id="abc"
sels.name="abc"
for(var i=0i<arr.lengthi++){
var opt=document.createElement("option")
opt.value=i
opt.innerHTML=arr[i]
sels.appendChild(opt)
}
document.body.appendChild(sels)