替换表单中的action属性值

时间:2010-07-22 12:43:51

标签: jquery

我正在尝试更改/替换表单中的action属性,但我对选择器有问题。我想将操作更改为ShoppingCart.asp?recal = Y

以下是表单的标记。

<form onsubmit="if (typeof(Update_Hidden_State_Fields)=='function') Update_Hidden_State_Fields(); if (this.submitted) return false; else {this.submitted=true; return true;}" action="ShoppingCart.asp" name="form" method="POST">

这是我到目前为止的Jquery。

$("[name='form']")
.attr('action', function(jj,ww){
     return ww.replace('ShoppingCart.asp','ShoppingCart.asp?recal=Y');})

3 个答案:

答案 0 :(得分:3)

$("[name=form]").attr("action", "ShoppingCart.asp?recal=Y");

答案 1 :(得分:1)

为什么不是简单的方法:

$("[name=form]").attr('action','ShoppingCart.asp?recal=Y');

答案 2 :(得分:1)

你有什么作品,试试这里:http://jsfiddle.net/nick_craver/Pgt5D/

我认为你缺少的是document.ready包装器,如下所示:

$(function() {
  $("[name='form']").attr('action', function(jj,ww){
    return ww.replace('ShoppingCart.asp','ShoppingCart.asp?recal=Y');
  });
});

不在document.ready上运行,除非您的脚本在页面中的表单元素之后运行,否则它将找不到任何运行.attr()的元素。通过将其包装在$(function() { });$(document).ready(function() { });中,您告诉它等待DOM准备就绪,元素将在那里。另外,我建议您将选择器更改为$("form[name='form']")(如果有其他名称的表单),以使其更多效率更高。