检查输入字段为空

时间:2014-04-23 08:40:26

标签: javascript jquery

我有一个按钮,一旦按下将检查数据属性是否失败。如果失败,它不会将它们发送到下一步。

问题是如果你失败了,一旦你无法进入下一步?任何想法

if ($('#storename').data("search") == "failed"){

   alert("Please select something.");

}else{

  //next step 

 };

像这样的东西,抱歉没有使用JS小提琴,但这应该清除它。 http://jsfiddle.net/gMam4/2/

3 个答案:

答案 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)。在你的情况下,我会想到前者......