2011-11-28 110 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