2010-07-22 27 views
1

我正在嘗試更改/替換表單中的動作屬性,但選擇器有問題。我想將操作更改爲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
$("[name=form]").attr("action", "ShoppingCart.asp?recal=Y"); 
+1

大聲笑有時你忽略了簡單的東西,我需要一些睡眠。 thx – user357034 2010-07-22 12:49:09

+0

我只需要添加一個逗號,並把值我想改變的價值xD – 2013-04-29 23:06:14

1

爲什麼不能簡單的方法:

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

+0

thx以及!!!! – user357034 2010-07-22 12:55:05

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準備就緒後,元素纔會在那裏。此外,我建議更改您的選擇(如果有其他形式的名稱),使其更有效。

+0

嘿尼克它沒有工作的原因是我把我的代碼在錯誤的地方,所以當然它不會工作,但代碼當我可以使用其他更簡單的建議時,我似乎有點矯枉過正,但我​​確實將選擇器更改爲您的選擇器 – user357034 2010-07-22 12:59:38