1

谁能告诉我如何使用 replace 方法来替换一个字符,如果它出现在多个文本框中,而不必为每个文本框编写单独的函数。

下面的代码是使用 replace 方法的基本方法,但它只允许一个文本框。

我确定我需要一个循环,但我不确定如何在不影响替换方法的情况下使用它。

<html>
<head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

    <script language="javascript">
        function stringReplace(form) {
            var replaceStr = form.textfield1.value
            var pattern = /\'/g;
            form.textfield1.value = replaceStr.replace(pattern, "''");
        }
    </script>
</head>
<body>
    <form name="form1" method="post" action="JStest_redirect.asp">
        <p>fname:
            <input type="text" name="textfield1" size="20">
        </p>
        <p>lname:
            <input type="text" name="textfield2" size="20">
        </p>
        <p>
            <input onclick="return stringReplace(form)" type="submit" name="Submit" value="Submit">
        </p>

    </form>
</body>
</html>
4

5 回答 5

2

你可以这样做:

function stringReplace(form) {
    var $inputs = $(form).find('input:text');
    var pattern = /\'/g;
    $inputs.each(function () {
        this.value = this.value.replace(pattern, "''");
    });
    return false;  // Prevent the form from being submitted
}

这将找到表单中的所有输入类型文本并替换它们的值。

于 2013-06-03T12:35:57.133 回答
1

如果您希望在没有 jquery 的情况下执行此操作,可以使用getElementsByTagName()方法。

function stringReplace(form) {

    var pattern = /\'/g;
    var inputs = form.getElementsByTagName("input");

    var input;
    for (var i = 0; i < inputs.length; i++) {
        input = inputs[i];
        if (input.type = 'text') {
            var replaceStr = input.value;
            input.value = replaceStr.replace(pattern, "''");

        }
    }

    return false;
}
于 2013-06-03T12:49:03.060 回答
0

你似乎想要

function stringReplace(form) {
   $('input[type=text]').val(function(_, v) {
      return v.replace(/\'/g, "''");
   });
   return false;
}

return false在末尾添加了一个以防止单击时提交表单。您可能希望在您的情况下有一个单独的按钮。

于 2013-06-03T12:34:32.297 回答
0

您可以onchange为所有文本输入添加功能

function stringReplace(textField) {
            var replaceStr = this.value
            var pattern = /\'/g;
            this.value = replaceStr.replace(pattern, "''");
        }

而不是你添加

<input type="text" name="textfield1" size="20" onchange="stringReplace(this);">
于 2013-06-03T12:41:33.183 回答
0

我相信首先你必须接受所有的价值观

 function GetValue(){
var Contain = "";
$("#form1 :text").each(function(){
 //add replace code here
});

}

于 2013-06-03T12:36:47.280 回答