从'更改HTML表单操作;HTTPS'到'HTTP'使用JQuery

Change HTML Form Action from 'HTTPS' to 'HTTP' with JQuery

本文关键字:HTTP JQuery HTTPS 使用 表单 更改 HTML 操作      更新时间:2023-09-26

我在HTML页面上有几个表单,如下所示:

<form class="pagination" action="https://www.myaction.com" method="post">
...
</form>
<form class="pagination" action="https://www.myaction.com" method="post">
...
</form>
<form class="pagination" action="https://www.myaction.com" method="post">
...
</form>

并且我想将动作更改为CCD_ 1。最简单的方法是什么?

我试过这个:

$('.pagination').attr('action').replace('https', 'http'); 

但那没用。还有其他简单的想法吗?

您所要做的只是更改一个字符串,但不影响dom元素本身。

尝试:

$('.pagination').attr('action', function( _, action){
    return action.replace('https', 'http');
});

使用attr()的函数参数将在提供索引和现有值作为参数的所有匹配选择器上循环。

引用attr(attributeName,function)

您可以使用以下内容:

$(document).ready(function() {
    $('form.pagination').attr('action', function() {
        return this.action.replace(/https:/i, 'http:');
    });
});

function out( sel ) {
     $('.pagination').each(function() {
       $(sel).append( this.action + ''n' );
     });
   }
   $(document).ready(function() {
        out('.before');
        $('form.pagination').attr('action', function() {
            return this.action.replace(/https:/i, 'http:');
        });
        out('.after');
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="pagination" action="https://www.myaction.com" method="post">
...
</form>
<form class="pagination" action="https://www.myaction.com" method="post">
...
</form>
<form class="pagination" action="https://www.myaction.com" method="post">
...
</form>
<pre class="before"><h1>BEFORE</h1></pre>
<pre class="after"><h1>AFTER</h1></pre>

这样做:

$('.pagination').each(function() {
    var url = $(this).attr('action').replace('https', 'http');
    $(this).attr('action', url);
});

如果只使用一个参数调用attr,jQuery将理解您想要读取值。如果你用两个参数调用它,它就会知道你想设置值。

他们的做法是错误的,应该是:

$('.pagination').attr('action', $('.pagination').attr('action').replace('https', 'http'));