我拉一价值通过JavaScript从一个文本框。如果文本是空的,它返回 NaN.我想要返回的一个空串如果它是空,空,等等。

什么检查我做什么? if(NAN = tb.value)?

有帮助吗?

解决方案

嗯,事情是腥在这里。

在什么浏览器不会一个空文本框返回南?我从来没见过这种情况发生,我无法再现。

值的文字框中,实际上是一串。一个空文本框返回的一个空弦!

哦,如果要检查的东西是南,你应该使用:

if (isNaN(tb.value))
{
   ...
}

注:的 isNaN()-功能返回 true 为什么不能分析为一个数字,除了空串。这意味着这是一个很好的检查数字输入(比更容易regex):

if (tb.value != "" && !isNaN(tb.value))
{
   // It's a number
   numValue = parseFloat(tb.value);
}

其他提示

你也可以做这种方式:

var number = +input.value;
if (input.value === "" || number != number)
{
    // not a number
}

南等于什么,甚至没有本身。

如果你不喜欢使用的+转自串号码,使用正常的确给出,但记住一直得到基地

var number = parseInt(input.value, 10)

否则,"08"变为0因为Javascript认为这是一个八号。

假设你有一个参考文本输入栏:

function getInteger(input) {
  if(!input || !input.value) return "";

  var val = parseInt(input.value, 10);

  if(isNaN(val)) return "";
  else return val;
}

有一件事你能做的就是regex检查的价值的文本,并确保它符合本格式的一种被接受的数量,然后,如果它符合本格式执行你的过程,否则返回的一个空串。

编辑:这是一个例子是从一些代码,我在我的前面(可能不是最好的经常表达):

var anum=/(^\d+$)/;

if (!anum.test(document.getElementById("<%=txtConceptOrderValue.ClientID %>").value))
{
    alert("Order Value must be a valid integer");
    document.getElementById("<%=txtConceptOrderValue.ClientID %>").focus();
    return false;
}

编辑2:我还应该注意到,我在使用ASP.NET 这就是为什么我在稍时髦的方式访问该文本框。在你经常JavaScript的情况下,它可能不会为混乱。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top