jQuery表单validation问题,其他框可见时
我有下面的“其他”框。 我想validation这个盒子,所以它只有在可见时才为空白。 对于什么应该是直截了当我遇到了麻烦。 任何帮助非常感谢。 谢谢
else if($('#myBox_' + id + ':visible')) { if(!blank('otherprodtypebox[]')){alert("Please enter a valid other option");return false;} } function myOtherBox(e, id) { if (e.value == 'otherprodtype') { $('#myBox_' + id).show(); } else { $('#myBox_' + id).hide(); } } myBox_ Other
编辑:
我现在差不多了:
else if($('#myBox_').is(':visible')) { if(!blank('otherprodtypebox[]')){alert("Please enter a valid other option");return false;} }
好吧所以这似乎只检查validation框是否可见,如果它是空的则抛出警报然后因为一些奇怪的原因当我填写框时它不会按预期抛出警报但不会让我继续并且没有错误消息
用$('#myBox_' + id + ':visible')
$('#myBox_' + id).is(':visible')
替换$('#myBox_' + id + ':visible')
$('#myBox_' + id).is(':visible')
解决问题
我设法让它与一组东西合作,但最重要的是.is(’:visible’)
工作代码:
else if(($('#myBox_ ').is(':visible'))&&(!blank('otherprodtypebox[ ]'))){alert("Please enter a valid other option");document.lending.otherprodtypebox[ ].focus();return false; }
我不太确定,但我认为这会导致问题(这是否会导致任何结果?你可以检查一下):
$('#myBox_' + id + ':visible')
而不是这个你可以尝试检查可见属性,如:
$('#myBox_' + id).attr('visible')
您应该知道$('#myBox_' + id + ':visible')
是一个jQuery选择器,因此如果没有元素匹配则返回一个空数组。
在JavaScript中将空数组转换为布尔值将始终返回true
。 因此, if($('#myBox_' + id + ':visible'))
将始终返回true
。
您可以使用if($('#myBox_' + id + ':visible').length > 0)
来确保您的选择器至少匹配一个元素。