我有一个按钮,一旦按下将检查数据属性是否失败。如果失败,它不会将它们发送到下一步。
问题是如果你失败了,一旦你无法进入下一步?任何想法
if ($('#storename').data("search") == "failed"){
alert("Please select something.");
}else{
//next step
};
像这样的东西,抱歉没有使用JS小提琴,但这应该清除它。 http://jsfiddle.net/gMam4/2/
答案 0 :(得分:1)
在您的锚点击事件中将$(".failed").attr("data-search", "failed");
替换为$('#storename').attr("data-search", "failed");
。试试这个:
$('#storename').on('keyup',function(e){
if ($('#storename').attr("data-search") == "failed"){
alert("Please select something.");
}else{
alert("this is not failed");
};
});
$(".failed" ).click(function() {
console.log('changing to failed');
$('#storename').attr("data-search", "failed");
});
<强> DEMO 强>
答案 1 :(得分:1)
FIDDLE:
<强> http://jsfiddle.net/gMam4/9/ 强>
$('#storename').on('keyup',function(e){
if ($('#storename').data("search") === "failed"){
console.log("Please select something.");
}else{
console.log("this is not failed");
};
});
$(".failed").on('click',function() {
console.log('changing to failed');
$("#storename").attr("data-search", "failed");
});
答案 2 :(得分:0)
<强>修正强>
您可能希望通过$('#storename').data('search')
并通过$('#storename').data('search', 'failed')
进行设置。混合HTML5数据属性和jquery数据属性似乎是个问题。
此外,请注意你所使用的等于 == 的双重 - 在这里可能是无害的,但总是更好地使用严格(in)与 === 和!==
长版
使用http://jsfiddle.net/gMam4/2/中的小提琴,看起来您正在设置并获取'data- *'属性。问题是,这与$ el.data()调用没有直接关系。来自jquery文档:
数据属性在第一次访问数据属性时被拉出,然后不再被访问或变异(所有数据值都在内部存储在jQuery中)。
此处有长版:http://api.jquery.com/data/#data-html5
因此,要么使用$ el.data('key',value)直接设置数据,要么使用$ el.val(value)。在你的情况下,我会想到前者......