2014-04-10 72 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