【发布时间】:2011-02-10 23:00:58
【问题描述】:
我有一个按钮,其中有一个 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">
当复选框被点击时,需要在按钮的onclick函数里面改变URL中查询字符串的值。
到目前为止,我有这个,想法是正确的,但是运行时我不断收到错误:“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));
});
我知道将函数转换为字符串,进行替换,然后尝试将其转换回函数似乎有点 hacky,但我不知道有任何其他方法。
有什么想法吗?
我在这里设置了一个演示:http://jsbin.com/asiwu4/edit
【问题讨论】:
-
服务器设置的功能是否已知?然后只需阻止默认点击事件并执行具有调整值的已知点击事件。如果不是,那么您的解决方案似乎是最好的(不是一个好的解决方案,但它有效)。
标签: javascript jquery function onclick