我有一個按鈕,其中有一個onclick事件,它在.NET的後端設置。在它旁邊是一個複選框用jQuery修改onclick函數
<button class="img_button" onclick="if(buttonLoader(this)){WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('uxBtnRelease', '', true, '', 'somepage.aspx?oupid=5&fp=true', false, true))} return false;" type="button">Release</button>
<input type="checkbox" checked="checked" id="myCheckbox">
當點擊複選框,需要改變在按鈕的onclick函數內部的URL查詢字符串的值。
到目前爲止,我都這樣了,這個想法是對的,但我不斷收到錯誤時,它的運行:「未捕獲的SyntaxError:意外的標記非法」
var defaultReleaseOnClick=null;
$("#myCheckbox").click(function(){
var $releaseBtn = $(".img_button");
if(defaultReleaseOnClick==null) defaultReleaseOnClick=$releaseBtn.attr("onclick");
var newOnClickString = defaultReleaseOnClick.toString().replace(/&fp=[a-z]+'/i,"&fp="+this.checked);
$releaseBtn.removeAttr("onclick").click(eval(newOnClickString));
});
我知道這似乎有點哈克的功能轉換到一個字符串,做一個替換,然後嘗試將其轉換回一個函數,但我不知道任何其他方式來做到這一點。
任何想法?
我已經在這裏設置一個演示:http://jsbin.com/asiwu4/edit
服務器設置的功能是否已知?然後防止默認的點擊事件,並執行已調整值的已知點擊事件。如果沒有,那麼你的解決方案似乎是最好的(不是一個好的,但它的工作原理)。 – jerone 2011-02-10 23:09:20