2014-04-10 100 views
0

在提交時,更改表單所有文本輸入字段中特定字符的最佳方法是什麼?當表單被提交時,我希望「x」替換爲「y」,「0」替換爲「1」。我需要將此代碼放置在表單驗證腳本中,以便它在提交時運行。更改表單提交中的字符

到目前爲止,找到了這個。不太我需要什麼,除了我甚至不能使它工作:)

var change_text = document.getElementById("mytextinput"); 
change_text = change_text.replace(/x/g, 'y'); 
change_text = change_text.replace(/0/g, '1'); 

// and so on for all text inputs... 
+2

這只是一個想法。爲什麼不能在服務器端嘗試相同的想法?而不是混淆與JavaScript,有許多服務器端腳本語言,可以幫助你在字符串處理 –

+0

@Ganesh這實際上是一個好主意。 – DontVoteMeDown

+0

@Ganesh好主意。無論如何,您還需要服務器端驗證。 – PointedEars

回答

1

當您將一個事件處理程序窗體的onsubmit事件,處理程序將與事件類型的參數來調用:

var submithandler = function (event) { 
    var form = event.target; // this is not be cross browser compatible 
    // iterate over all form elements: 
    var i, l; 
    for (i = 0, l = form.elements.length; i < l; i += 1) { 
    if (form.elements[i].type === 'text') { // only for type="text" 
     form.elements[i].value = form.elements[i].value.replace(/x/g, 'y'); 
    } 
    } 

    return true; // return false to prevent form submit 
}; 
+0

謝謝!並且還要將0替換爲1,我應該加上:form.elements [i] .value = form.elements [i] .value.replace(/ 0/g,'1'); ? – Malasorte

+1

而不是'event.target',只是寫'this',這更加兼容。更好的是,不要使用DOM添加'submit'事件偵聽器,使用'form'元素的'onsubmit'屬性並將'this'傳遞給您在那裏調用的函數/方法。 – PointedEars

+0

@PointedEars是對的。你應該寫:'

phylax