问题描述
||
我正在寻找一种使用jQuery单击
<asp:LinkButton>
的方法。我还使用了“ 1”,带有“是/否”选项,因此,如果用户单击“是”,则会触发一个JavaScript函数“ 2”,这将需要单击页面上的“保存”按钮,但它没有执行目前,仅显示警告框:
ASP.NET AJAX
<asp:LinkButton ID=\"butSaveAssociation\" runat=\"server\" OnClientClick=\"SaveAssociation();\" Text=\"btnSave\" />
<asp:ModalPopupExtender BehaviorID=\"confirmPopup\" ID=\"confirmPopup\" runat=\"server\" TargetControlID=\"butTest\"
PopupControlID=\"ConfirmView\" OnOkScript=\"OnOk();\" OnCancelScript=\"$find(\'confirmPopup\').hide(); return false;\" OkControlID=\"yesButton\" CancelControlID=\"noButton\" />
<asp:Panel ID=\"ConfirmView\" runat=\"server\" CssClass=\"modalPopup\" Style=\"display:none; height:150px; width:250px;\">
<center><div>
<table style=\"margin-left:auto; margin-right:auto;\">
<tr>
<td colspan=\"4\" align=\"left\" style=\"padding-left: 75px; padding-top: 10px;\">
Are you sure you want to save the changes?
</td>
</tr>
<br /><br />
<tr>
<td align=\"left\" colspan=\"1\">
<asp:LinkButton ID=\"yesButton\" runat=\"server\" CausesValidation=\"false\" CssClass=\"YesNoButton\" BorderStyle=\"none\" Text=\"YES\">
</asp:LinkButton>
</td>
<td align=\"right\" colspan=\"1\">
<asp:LinkButton ID=\"noButton\" runat=\"server\" CausesValidation=\"false\" CssClass=\"YesNoButton\" BorderStyle=\"none\" Text=\"NO\">
</asp:LinkButton>
</td>
</tr>
</table>
</div></center>
</asp:Panel>
带有JQUERY的JAVASCRIPT
<script src=\"~/Scripts/jquery-1.6.1.min.js\"></script>
<script type=\"text/javascript\">
function OnOk() {
ClickSaveButton();
}
function ClickSaveButton() {
$(\'#<%=butSaveAssociation.ClientID %>\').click() // not working...
alert(\'save button clicked.\');
}
</script>
编辑
\'SaveAssociation()\'函数只是更改一个标志,因此它不执行实际的保存:
<script type=\"text/javascript\">
function SaveAssociation() {
setDirty(false);
}
function setDirty(changeVal) {
$(\"#IsDirty\").val(changeVal);
}
</script>
<input type=\"hidden\" id=\"IsDirty\" value=\"\" />
此功能仅是检查页面上是否有更改,如果有更改,则将'IsDirty \'隐藏字段设置为true。如果用户单击“确定”以保存更改(例如回发),则需要调用处理\'butSaveAssociation.Click \的VB处理程序。
解决方法
在这种情况下,我只需要致电乔提到的“保存协会”。但是,为了将来参考,以下选择器应该会为您提供更好的结果。
$(\'[id$=butSaveAssociation]\').click();
如果您不使用母版页,Neals select也可以使用,但是我想您是因为您试图获取ClientID。
,为什么不只调用SaveAssociation()?
,尝试这个:
function ClickSaveButton() {
$(\'#butSaveAssociation\').trigger(\'click\');
alert(\'save button clicked.\');
}
,我遇到了类似的问题,已通过以下方法解决:
function clickButton(element)
{
if (element !=null)
{
if (element.click)
{
//IE only
element.click();
}
else
{
var evt = document.createEvent(\"MouseEvents\");
evt.initMouseEvent(\"click\",true,window,false,null);
element.dispatchEvent(evt);
}
}
else
{
//oops..
}
}
这样称呼:
clickButton(document.getElementById(\'<%=butSaveAssociation.ClientID%>\'));
我不知道为什么jquery不能正常工作。
看起来应该没问题,但对我也不起作用:
$(\'#<%=butSaveAssociation.ClientID %>\').click();
这可能与宇宙辐射或潮汐有关。;-)