对于一个项目,我正在使用数据库。用户应该能够创建一个条目,但在创建/编辑条目之前,必须检查某些内容。
我想要检查表单的输入字段是否为空,或者包含9个字符。我用以下代码完成了这个:
$('#submit').on('click', function(event) {
var formData = new FormData($('#ref')[0]);
if ($("#ihcnummer").val() != '' && $("#ihcnummer").attr('value').length != 9) {
$('#alert').html('<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> IFS projectnumber should either be left blank, or be equal to the 9 character standard!').slideDown(10);
$("#ihcnummer").css('border', '1px solid red');
return;
}
});
它涉及以下领域:
<td>
<input type="text" name="ihcnummer" id="ihcnummer" value="" class="form-control" placeholder="e.g. SP1234567">
</td>
这适用于Chrome,但由于某种原因(我看不到/不理解),这在IE中无效。如果我输入例如SP1234567
,Chrome会接受此信息并更新数据库,但IE会向我显示警报并且不会更新数据库。
如果我为此字段尝试不同的值,例如SP1234
它将返回警告。
我尝试了.val()
,还尝试了.attr('value')
。
为什么IE和Chrome之间存在差异?我如何确保这适用于两种浏览器?
希望你能帮助我。
答案 0 :(得分:0)
问题区域是.attr('value')
的使用情况,当您获得value
属性时,它将始终获取您设置为''
的空字符串
使用
$("#ihcnummer").val().length
而不是
$("#ihcnummer").attr('value').length