2011-11-28 109 views
1

上我正在做一个形式,但出于一致性的缘故,我想改变每,.更改为。输入/标签

这可能与JavaScript的,如果是的话我怎么能这样做呢?

+3

什么类型的元素,这是发生在?整个页面?一个文本框?你还使用或愿意使用jQuery? – Godwin

+0

以及我愿意使用的一切,其纯文本框。最好的办法是制作一个脚本,只检查带有某个id或class的文本框。 – Augus

+0

根据该评论编辑我的答案 – 2011-11-28 08:53:45

回答

0

有几种方法。最简单的就是使用正则表达式。

只需循环浏览表单的所有值就可以了(我假设你只有一个表单在页面上......如果有更多的表单,你需要做一个嵌套循环来完成所有的他们)。 哦,当然,如果你有提交按钮的值的时期,你需要添加排除,但我假设你没有)。

for(i=0; i<document.forms[0].elements.length; i++){ 
    document.forms[0].elements[i].value = document.forms[0].elements[i].value.replace(/,*/g, "."); 
} 
+0

你能检查我的第一篇文章评论? – Augus

+0

不知道我还能告诉你什么。与其他(正确的)答案不同,我实际上给了你插入的代码,以改变表单中的值(如你所要求的)。除此之外,还有什么可做的 - 给我答案并给我一个绿色的选中标记?我想不出任何事情。 :) –

+0

嗯tbh我真的不明白你的代码:)。正如我所说,我想要一个脚本只能在具有特定ID或类别的字段上工作。所以,如果你可以解释这个(或在http://jsfiddle.net/中举个例子),我会用爱来投票你的答案! – Augus

1

您可以在JavaScript中使用正则表达式来达到您的目的。尝试:

"your string".replace(/\,/g,'.')); 

它将改变的,所有出现与.

PS:你应该添加为@Godwin提到什么样的该元素的更多信息。

+0

你的权利我的信息很少(星期一上午wtf)。请检查我对第一篇文章的评论。 – Augus

+0

你不需要转义逗号,它不是正则表达式中的控件字符。 –

0

使用jQuery,你可以做到这一点很容易:

$('input[type="text"]') 
.filter(
function() { 
return $(this).attr('class').match(/^yourclass$/); 
} 
) 
.val(
function() { 
return $(this).val().replace(/\,/g,'.'); 
} 
); 
+0

你在开玩笑吧?这种邪恶的混乱是你描述为“相当容易”的问题,这个问题需要2行100%的跨浏览器向后兼容代码?你包含了一个完整的框架,这样你就可以“只用”8行来完成你可以在两个本地做的事情?很快就想到了锤子和钉子的老话。 –

+0

我必须指出,你的技术上是3线,但是谁在计数?此外,为了便于阅读,我将其分发出去,通常在1行。 ()返回$(this).attr('class')。match(/^yourclass $ /)})。val() function(){return $(this).val()。replace(/ \,/ g,'。')});' – 2011-11-28 19:54:16

+0

jQuery是为了方便。就这么简单。 – 2011-11-28 20:05:30