У меня есть кнопка, в которой есть событие onclick, которое было установлено на серверной части из .NET. Рядом с ним флажок
<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">
Когда флажок установлен, необходимо изменить значение строки запроса в URL-адресе внутри функции onclick кнопки.
Пока у меня есть это, и идея правильная, но я продолжаю получать ошибки при запуске: «Uncaught SyntaxError: Unexpected token ILLEGAL»
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.