如果条件不正常,而jquery中的值是正确的

时间:2014-12-04 07:49:00

标签: jquery

我只是使用下面的代码

尝试使用占位符文本的div文本
$('#editabledrag').draggable()
                        .click(function(){
                            $(this).draggable({disabled:false });
                        })
      .dblclick(function(){
            $(this).draggable({disabled : true});

        var textval=$(this).text();
        alert(textval); 
          if(textval == "Drag or double click and type!." )
        {
                alert("if");
            $(this).text("");
            $(this).focus();

        }
       else
       {
           alert("else");
           $(this).focus();

       }

      $(this).blur(function(){
            var textval2 =$(this).text();

            //textval2 = textval2.length;
                alert(textval2);
                if (textval2 == "" ) {
                    alert( "if" );
                    $(this).text("Drag or double click and type!.");
                } 
                else {
                      alert( "else" );

                }

        });

      });

我的jsp:

<div id="editabledrag" contenteditable="true" style="position: fixed;z-index:10000000">
Drag or double click and type!.
</div>

我的小提琴:http://jsfiddle.net/Manivasagam/ux3k0t23/27/

我正确得到div值,但我的if条件不满意。

我哪里错了?

3 个答案:

答案 0 :(得分:1)

您提取的文字中包含换行符。在比较if条件中的值之前,您需要从提取的文本中删除换行符:

if(textval.replace(/(\r\n|\n|\r)/gm,"")=="Drag or double click and type!."){
  //do something..
}

<强> Working Demo

答案 1 :(得分:1)

您可以在比较之前修剪字符串。使用textval.trim()

http://jsfiddle.net/ux3k0t23/28/

答案 2 :(得分:1)

因为你的div中的内容。删除div中的“新行”并将其写为

<div id="editabledrag" contenteditable="true" style="position: fixed;z-index:10000000">Drag or double click and type!.</div>