【问题标题】:Replace a string from a textarea with another text用另一个文本替换文本区域中的字符串
【发布时间】:2014-09-04 15:02:20
【问题描述】:

我有一个带有表单代码的文本区域,用户可以将其复制并粘贴到他们的网站中。

textarea 中的 html 会是这样的

更新:请注意以下表格包含在文本区域中。这将是文本区域中的纯文本

<form action="https://www.xxxxxxx.com/servlet/servlet?encoding=UTF-8" method="POST">
<label for="first_name">First Name</label><input  id="first_name" maxlength="40" name="first_name" size="20" type="text" /><br>

<label for="last_name">Last Name</label><input  id="last_name" maxlength="80" name="last_name" size="20" type="text" /><br>

<input type="submit" name="submit">

</form>

我想将表单标签的 url 更改为 https://www.yyyyyyyyy.com/parse.php 并使用 jquery 或普通 javascript 将更改后的表单代码复制到另一个文本区域。以下是完整的html

<form>
 <textarea rows="10" cols="80" id="oldCode">
  <form action="https://www.xxxxxxx.com/servlet/servlet?encoding=UTF-8" method="POST">
  <label for="first_name">First Name</label><input  id="first_name" maxlength="40" name="first_name" size="20" type="text" /><br>

  <label for="last_name">Last Name</label><input  id="last_name" maxlength="80" name="last_name" size="20" type="text" /><br>

<input type="submit" name="submit">

</form>
</textarea>
    <button onclick="generateCode()">Generate new Code</button>
<textarea id="newCode" rows="10" cols="80">
</textarea>   
</form>

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    您可以通过以下方式进行操作,将type="button" 用于按钮元素,因为它每次都会提交表单

    <button type="button" id="generate" >Generate new Code</button>
    

    在 jQuery 下方使用,将点击事件绑定到按钮并替换表单的动作属性。
    注意:- 您可以使用相同的代码调用 onclick javascript 函数,而不是绑定点击事件

    $(function(){
        $("#generate").click(function(){
          var value = $('#oldCode').val();
          var div = $('<div></div>');
          $(div).append(value);
    
          $(div).find('form').attr('action','https://www.yyyyyyyyy.com/parse.php');
    
          $('#newCode').val( $(div).html());
        });
    });
    

    Demo

    【讨论】:

      【解决方案2】:

      这是一个简单的 sn-p:

      $('button').click(function () {
          var clone = $($('#oldCode').val()).clone();
          clone.attr('action', 'https://www.yyyyyyyyy.com/parse.php');
          $('#newCode').val(clone[0].outerHTML);
      });
      

      即只需创建 textarea 值的克隆,更改属性,然后将克隆的 HTML 添加到另一个 textarea。

      A live demo at jsFiddle.

      【讨论】:

        【解决方案3】:

        id 添加到您的formmyForm

        $('button').click(function(){
            var formClone = $('#myForm').clone();
            formClone.attr('action', 'https://www.yyyyyyyyy.com/parse.php');
            $('#newCode').text(formClone);
        )};
        

        【讨论】:

        • 表单在文本区域中。此表单应视为文本
        【解决方案4】:

        给表格一个id

        <form action="https://www.xxxxxxx.com/servlet/servlet?encoding=UTF-8" method="POST" id="form">
                                                                                             ^
        <label for="first_name">First Name</label><input  id="first_name" maxlength="40" name="first_name" size="20" type="text" /><br>
        
        <label for="last_name">Last Name</label><input  id="last_name" maxlength="80" name="last_name" size="20" type="text" /><br>
        
        <input type="submit" name="submit">
        
        </form>
        

        在jquery函数中

        $('#form').attr('action', 'https://www.yyyyyyyyy.com/parse.php '); // set the action attribute to required page
        $('#newCode').html($('#form').html());   // set the html of textarea with id newCode as the html content of form with id form
        

        【讨论】:

        • 问题中的“表单”是纯文本,而不是 HTML 元素。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-18
        • 2023-04-08
        • 2012-07-19
        • 1970-01-01
        • 1970-01-01
        • 2016-03-29
        • 1970-01-01
        相关资源
        最近更新 更多