我正在尝试更改/替换表单中的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');})
答案 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']")
(如果有其他名称的表单),以使其更多效率更高。