如果条件不使用JavaScript

时间:2014-01-15 09:32:12

标签: javascript

我的VF页面出现了javascript问题,所以我在这里发布了这个问题。

这是我的代码:

<html>
    <input id="xyz" value="&nbsp;"/>
    <script>
        alert( document.getElementById('xyz').value);
        var x = document.getElementById('xyz').value;
        if(  x == '&nbsp;' )
           alert(1)
        else
           alert(2);
    </script>
</html>

输入字段xyz的值为&nbsp;我正在检查javascript中的值,但if条件永远不会计算为true。可能是什么问题呢? jsfiddle

5 个答案:

答案 0 :(得分:3)

静态String.fromCharCode()方法返回使用指定的Unicode值序列创建的字符串。

对于不间断的空间,您可以使用String.fromCharCode(160)

  if(  x ==String.fromCharCode(160))
      alert(1)
   else
       alert(2);

DEMO: http://jsfiddle.net/36eyp/

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

HTML:

 <span id="xyz" >&nbsp;</span>

使用Javascript:

    alert( document.getElementById('xyz').innerHTML);
    var x = document.getElementById('xyz').innerHTML;
    if(  x == '&nbsp;' )
       alert(1)
    else
       alert(2);

http://www.adamkoch.com/2009/07/25/white-space-and-character-160/

答案 1 :(得分:1)

使用&nbsp; HTML实体的\u00a0的UNICODE表示形式:

if (x == "\u00a0")
    alert(1);

答案 2 :(得分:0)

&nbsp;不会在函数中获得:

var x = document.getElementById('xyz').value;
if(  x == '\xa0' ){
    alert(1)
}else{
    alert(2);
}

小提琴:http://jsfiddle.net/NDBY3/1/

答案 3 :(得分:0)

您也可以使用正则表达式。可能不是最好的解决方案,但它确实有效。

alert( document.getElementById('xyz').value)
var x = document.getElementById('xyz').value
if(/^\s$/.test(x))
    alert(1)
else
    alert(2)

请参阅this fiddle

答案 4 :(得分:-1)

&nbsp;是用于表示不间断空间的实体。它本质上是一个标准空间,主要区别在于浏览器不应该在&nbsp;占用的点处中断(或换行)一行文本。