我在simplecart中为项目添加错误参数时尝试获取警报。 如果该字段为空,或者如果它低于400则为高于500.
当字段为空时,一切正常,但不是警报。
HTML
<input required max="500" min="400" type="number" class="item_width">
JavaScript的:
<script>
simpleCart.bind( 'beforeAdd' , function( item ){
if( item.get( 'width' ) < '400'
|| item.get( 'width' ) > '500'
|| item.get( 'width' ) === 'null')
{
alert("Choose between 400 and 500");
return false;
}
});
</script>
答案 0 :(得分:0)
我不知道simplecart如何处理空字符串,但你写了'null'
,这意味着输入的文本必须是"null"
,一个字符串,而不是对象null
。另外,空字符串不为空,它是一个空字符串,所以请尝试:
simpleCart.bind( 'beforeAdd' , function( item ){
if ( item.get( 'width' ) < '400'
|| item.get( 'width' ) > '500'
|| item.get( 'width' ) == null
|| item.get( 'width' ) === '')
{
alert("Choose between 400 and 500");
return false;
}
});
此外,通过<
或>
对string
测试整数不是很好的编程。它可能有效,但请正确编码:
simpleCart.bind( 'beforeAdd' , function( item ){
if ( item.get( 'width' ) < 400
|| item.get( 'width' ) > 500
|| item.get( 'width' ) == null
|| item.get( 'width' ) === '')
{
alert("Choose between 400 and 500");
return false;
}
});
为了确保item.get(&#39; width&#39;)实际上给你一个整数,你应该解析它们:
...
parseInt( item.get('width') ) < ...
...
答案 1 :(得分:0)
试试这个,
if( item.get( 'width' ) < '400' || item.get( 'width' ) > '500' || item.get( 'width' ) === 'null' || item.get( 'width' ) === '')
{ alert("Choose between 400 and 500"); }