2012-06-13 60 views
0

我已經做了一些Google搜索,但一直沒有能夠得到這個工作。我需要做的是查看錶單中的所有TEXT字段,並將「,」(逗號)的所有實例替換爲「&#4 4;」 (轉義逗號)提交。javascript替換所有表單域中的文本提交

這裏是表單標籤:

<form name="buildcourse" id="buildcourse" action="target.htm" method="post" enctype="multipart/form-data" onsubmit="validateForm()"> 

這裏是我的javascript功能:

<script language="javascript"> 
function validateForm(buildcourse){ 
    $('form input[type="text"]').each(function(){ 
     this.value = replace(",","&#44;"); 
    }); 
} 
</script> 

很想幫助得到它的工作。對不起,我完全是Javascript無用的。

+0

的目的是什麼?這種事通常是最好的服務器端.. – Radu

+0

同意100%。在這種情況下,它是一個傳統的ColdFusion站點,它有許多表單域以相同的名稱提交,然後再分開。但這意味着沒有一個領域可以在他們的逗號。這是超級笨拙和煩人的,但我只需要讓它工作,並希望我們可以很快重新編碼。 – user1316401

+0

'replace()'屬於'String',所以你必須以這種方式調用它'String.replace('/,/ g',',')' – Adi

回答

2

爲此,您可以在commas拆分然後用"&#44;"

$('form input[type="text"]').each(function(){ 
    this.value = this.value.split(',').join('&#44;') 
}); 

純JavaScript歸隊http://jsfiddle.net/mQrLS/3/

var theInputs = document.getElementsByTagName('input'); 
for (var i = 0; i < theInputs.length; i++) { 
    var node = theInputs [i]; 

    if (node.getAttribute('type') == 'text') { 
     // using split 
     //node.value = this.value.split(',').join('&#44;'); 
     // using regex 
     node.value= node.value.replace(/,/g,'&#44;'); 
    } 
} 

由於@Radu提到的與正則表達式不執行得更快

+0

驗證/替換似乎並不要麼完成,要麼用你的代碼或我的。是否有我在別處忽略的語法問題? – user1316401

+0

我其實只是更新了我的代碼。我忘了這個.value.split早 –

+0

代碼仍然不會工作/發射...... :( – user1316401

2

替換您的代碼存在的問題是沒有全局替換功能。然而,它可以作爲任何字符串的方法。

<form name="buildcourse" id="buildcourse" action="target.htm" method="post" enctype="multipart/form-data"> 

(掏出聯事件綁定)

$('#buildcourse').submit(function() { 
    $('form input[type="text"]').each(function(){ 
     this.value = this.value.replace(/,/g, '&#44;'); 
    }); 
});​ 
+0

那隻會得到正確的字符串中的第一個逗號嗎? –

+0

@wirey,good catch,will fix – Radu

+0

this should fix it:'.replace('/,/ g',',')' – Adi

相關問題