javascript在提交时替换所有表单域中的文本

时间:2012-06-13 17:37:38

标签: javascript forms replace onsubmit

我做了一些谷歌搜索,但一直无法使用。我需要做的是查看表单中的所有TEXT字段,并将“,”(逗号)的所有实例替换为“&#4 4;” (转义逗号)提交。

这是表格标签:

<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-inept。

2 个答案:

答案 0 :(得分: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所提到的,使用正则表达式替换确实执行得更快

答案 1 :(得分: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;');
    });
});​