我正在使用Bootstrap 3验证表单中的字段,并且我发现使用某些浏览器,特别是ios safari,我的[required]表单项未经验证。为了弥补这一点,我创建了一个脚本来检查元素是否已被标记为必需,如果该字段的值为'',则会出现警报。它适用于文本框字段,但由于某种原因,它似乎没有检查下拉框。我在所有下拉框中都使用占位符,其值为'',因此应该看到那些没有正确填写。
我的脚本在这里
$("form").submit(function(e) {
var mobile = "<?php echo $_SESSION['ads']; ?>";
var ref = $(this).find("[required]");
if(mobile == 0){
$(ref).each(function(){
if ( $(this).val() == '' )
{
alert("Required field should not be blank.");
$(this).focus();
e.preventDefault();
return false;
}
});
}return true;
});
以下是我的一个表单的示例:
<div class="form-group required">
<label for="donationType">Type</label>
<select class="form-control" name="donationType" id="donationType" style="min-width: 140px;" required>
<option value="" disabled selected>-</option>
<option>Item</option>
<option>Mileage</option>
<option>Money</option>
<option>Time</option>
</select>
</div>
对此的任何见解将不胜感激。或者在不支持正常引导程序验证的浏览器上验证的任何其他方法。
答案 0 :(得分:2)
添加
condition = str>='a' & str <='z'; % | ...
string=string[condition];
它也适用于Safari:
$(this).val() == null ||
$("form").submit(function(e) {
var mobile = "0";
var ref = $(this).find("[required]");
console.log(ref);
if(mobile == 0){
console.log(0);
$(ref).each(function(){
if ( $(this).val() == null || $(this).val() == '' )
{
alert("Required field should not be blank.");
$(this).focus();
e.preventDefault();
return false;
}
});
}
return true;
});