有谁知道为什么asp:CheckBox的客户端javascript处理程序需要是OnClick =""属性而不是OnClientClick =""属性,对于asp:Button?
例如,这有效:
<asp:CheckBox runat="server" OnClick="alert(this.checked);" />
Run Code Online (Sandbox Code Playgroud)
这不(没有错误):
<asp:CheckBox runat="server" OnClientClick="alert(this.checked);" />
Run Code Online (Sandbox Code Playgroud)
但这有效:
<asp:Button runat="server" OnClientClick="alert('Hi');" />
Run Code Online (Sandbox Code Playgroud)
这不会(编译时错误):
<asp:Button runat="server" OnClick="alert('hi');" />
Run Code Online (Sandbox Code Playgroud)
(我知道Button.OnClick用于什么;我想知道为什么CheckBox不能以相同的方式工作......)
我有一个如下按钮,
<asp:Button ID="pagerLeftButton" runat="server" OnClientClick="disable(this)" onclick="pager_Left_Click" Text="<" />
Run Code Online (Sandbox Code Playgroud)
当我使用我的按钮时,onclick不会触发.当我删除OnClientClick时,然后触发onclick.
我需要做的是,在回发期间禁用按钮并在回发结束后启用它.
编辑:附加信息:
我添加了断点,我的触发功能是c#部分,我正在调试,他们肯定没有开火.那些功能就像
protected void pager_Left_Click(object sender, EventArgs e)
{
//Do smthing.
}
protected void pager_Right_Click(object sender, EventArgs e)
{
//Do smthing.
}
Run Code Online (Sandbox Code Playgroud)
当我点击我的按钮时,它被禁用1-2秒并自动启用,但我不确定为什么它被启用.我没有添加任何部分,以便再次启用它.
是否可以使用onclientclick
按钮的属性进行客户端检查.如果检查返回true
,则触发该onclick
事件.如果客户端检查返回false
,请不要触发该onclick
事件.
那可能吗?
更新:
这2项工作:
Stops the form from submitting:
OnClientClick="return false;"
Run Code Online (Sandbox Code Playgroud)
Allows the form to submit:
OnClientClick="return true;"
Run Code Online (Sandbox Code Playgroud)
接下来的2个不起作用:
// in js script tag
function mycheck() {
return false;
}
// in asp:button tag
OnClientClick="return mycheck();"
Run Code Online (Sandbox Code Playgroud)
// in js script tag
function mycheck() {
return true;
}
// in asp:button tag
OnClientClick="return mycheck();"
Run Code Online (Sandbox Code Playgroud)
它同时提交表单.
这是为什么?
我想做很简单的事情,但我不成功.我的asp.net页面上有按钮和标签,我想在点击按钮后获得标签文本.这是我的代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="DynamicWebApplication.WebForm2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function f()
{
var g = $('<%=Label1.ClientID%>').val(); // Also I tried .text() and .html()
alert(g);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<p></p>
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="f();"/>
</div>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)
我有一个表单,用户可以删除记录,我想要一个弹出消息,用户必须单击确定以确认删除.
删除按钮:
<asp:Button ID="btnDelete" runat="server" Text="Delete" UseSubmitBehavior="false" OnClick="btnDelete_Click" OnClientClick="confirmation();" />
Run Code Online (Sandbox Code Playgroud)
确认功能:
function confirmation() {
var answer = confirm("Are you sure you want to delete? This action cannot be undone.")
}
Run Code Online (Sandbox Code Playgroud)
所以现在,单击删除按钮会在后面的代码中执行btnDelete_Click Sub,无论您是单击okay还是在弹出框中取消.我知道我可以在我的javascript函数中添加if(answer){ - 这里的一些代码 - },但是可以使用javascript从代码隐藏中执行代码吗?或者还有另一种方法吗?
我只想在Web用户控件中添加一些客户端(JQuery Javascript)验证.我放了一个OnClientClick处理程序,然后调用该函数.但是,即使我返回"false",OnClick方法也会被触发.我究竟做错了什么 ?
我使用VS 2010,使用JQuery 1.4.2定位4.0框架.和JQuery UI 1.8.4.
这是一个示例代码:
<td style="text-align:right"><asp:Button ID="btnAddSave" OnClientClick="return ValidateMail();" OnClick="btnAddSave_Click" runat="server" Text="Submit" /></td>
Run Code Online (Sandbox Code Playgroud)
脚本方法:
function ValidateMail() {
alert("Bouton clicked");
return false;
Run Code Online (Sandbox Code Playgroud)
}
如果我在Page_Load事件中放置一个断点,我看到我进入并且还执行了btnAddSave_Click事件.
我的链接按钮 -
<asp:LinkButton runat="server" ID="lbtnEdit" Text="edit" OnClientClick="javascript:msgDisp('<%# Eval(LocationId).toString() %>')" />
Run Code Online (Sandbox Code Playgroud)
和javascript msgDisp是 -
<script type="text/javascript" language="javascript">
function msgDisp(lid) {
alert(lid);
}
</script>
Run Code Online (Sandbox Code Playgroud)
但它不是在pop中使用LocationId,而是整个字符串<%#......%>在弹出消息中是comin.如何在javascript中传递Eval值.
我有一个LinkButton
地方,我使用该OnClientClick
属性询问用户他是否真的想要执行一个动作,例如:
<script>
function confirmDelete() {
return confirm('Do you really want to delete?');
}
</script>
<asp:LinkButton runat="server" OnClientClick="return confirmDelete()" ... />
Run Code Online (Sandbox Code Playgroud)
这种模式通常有效,但在这个特定页面上却没有.无论是否在确认对话框中单击"确定"或"取消",都会执行回发.
只是为了完整性(回答pst的问题):呈现的HTML是可以的.例如它看起来像这样:
<a id="ctl00_c1_content_btnDelete" onclick="return confirmDelete();"
href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(..))"
... >
Delete
</a>
Run Code Online (Sandbox Code Playgroud) 我有Onclientclick事件附加到服务器端代码中的按钮,如下所示,
TopPanelButton.OnClientClick = string.Format("if(!ValidData({0},{1},{2},{3})) return false;", txtOD.ClientID, radCmbOD.ClientID, txtgetMe.ClientID, RadAjaxLoadingPanel1.ClientID);
Run Code Online (Sandbox Code Playgroud)
此外,onClick事件附加到aspx页面中的相同按钮,
<asp:Button ID="TopPanelButton" runat="server" Text="Go"
CssClass="CBtn1" Width="30px" Height="21px" OnClick="TopPanelButton_Click" />
Run Code Online (Sandbox Code Playgroud)
如果onclientclick返回true,则应触发服务器端点击事件.调用"ValidateData()"函数来验证表单中的条目.
此代码在IE中正常工作.但在Firefox中,这两个事件并不充实.如果我评论"TopPanelButton.OnClientClick = ..."代码,则onClick事件将被触发.
我在哪里可以在下面的代码中应用此代码Page.ClientScript.GetPostBackEventReference().
TopPanelButton.OnClientClick = string.Format("if(!ValidData({0},{1},{2},{3})) return false;", txtOD.ClientID, radCmbOD.ClientID, txtgetMe.ClientID, RadAjaxLoadingPanel1.ClientID);
Run Code Online (Sandbox Code Playgroud)
Firefox没有调用ValidData函数.我在javascript中设置了警报,但Firefox中没有显示警告消息.但IE显示警报消息.
我的validData函数:
function ValidData(txtOND, ddlOND, txtgetMe, aPanel) {
alert("Entered");
if (!ValidNumber(txtgetMe)) {
aPanel.hide();
return false;
}
if (ddlOND.value == "Origin" || ddlOND.value == "Destination") {
if (!ValidOriginOrDestination(txtOND, ddlOND.value)) {
aPanel.hide();
return false;
}
}
else if (ddlOND.value == "O&D") {
if (!ValidOND(txtOND)) {
aPanel.hide(); …
Run Code Online (Sandbox Code Playgroud) 我遇到了将参数传递给客户端事件的问题OnClientClicking
.
我试图使用该String.Format ()
功能,但它不起作用.
您是否有一个解决方法来发送与之链接的参数OnClientClicking
?
代码asp
:
<telerik:RadButton ID="bnt_meetingDelete" runat="server" OnClientClicking="<%# string.Format("confirmCallBackFn('{0}');",Eval("MeetingID")) %>" Image-ImageUrl="~/image/icone/delete-icon.png" Image-IsBackgroundImage="true" Width="21" Height="21" telerik:RadButton>
Run Code Online (Sandbox Code Playgroud)
错误IIS
:
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: The server tag is not well formed.
Run Code Online (Sandbox Code Playgroud)
我试过控制器[asp:ImageButton].并且是同样的错误
好吧,我想我已经从stackoverflow尝试了3-4种方法,但似乎没有一种方法可行.
我有:
OnClientClick='<%# Eval("albumName", "doConfirm(\"delete\", \"{0}\");").ToString() %>'
Run Code Online (Sandbox Code Playgroud)
但在html中它呈现为:
onclick="doConfirm("delete", "Test");"
Run Code Online (Sandbox Code Playgroud)
还尝试了一个方法来调用:
public string CreateConfirmation(String action, String item) {
return String.Format(@"return confirm('Sikker på du vil {0}: {1}');", action, item);
}
Run Code Online (Sandbox Code Playgroud)
有了这个:
OnClientClick='<%# CreateConfirmation("delete", (string)Eval(albumName)) %>'
Run Code Online (Sandbox Code Playgroud)
但是给了我完全相同的问题....所以我很丢失?
我在页面上有几个ASP文本框控件,添加了自定义验证器.我有保存按钮,它验证这些文本框.我刚刚添加了与文本框相同的验证组.
为了合并addtional要求,我为Save按钮添加了onClientClick函数.但很高兴发现由于验证组(验证器控件)而导致的验证未触发,而是调用onClientClick函数并调用服务器端Click事件.
Javascript代码
function ValidateInputs(source, args) {
var regex = /^(-{0,1}\d{1,100})$/;
if (args.Value.length < 1) {
$("span[id$='spn_error']").html('Please Enter ' + $(source).attr("errormessage"));
$("span[id$='spn_error']").show();
args.IsValid = false;
return;
}
else if (!regex.test(args.Value)) {
$("span[id$='spn_error']").html($(source).attr("errormessage") + ' allows only numbers');
$("span[id$='spn_error']").show();
args.IsValid = false;
return;
}
else {
if ($("span[id$='spn_error']").html().indexOf($(source).attr("errormessage")) >= 0)
$("span[id$='spn_error']").hide();
args.IsValid = true;
return;
}
}
function isValidTracker() {
//Dummy Code Say Confirm button
return(confirm('Are you sure');)
}
Run Code Online (Sandbox Code Playgroud)
HTML代码
<span class="errormesg" runat="server" id="spn_error" style="display: none;
font-size: 9px;"></span>
<asp:TextBox ID="txtLastMonthCount" runat="server" …
Run Code Online (Sandbox Code Playgroud) 我有一个附带onclientclick js函数的ImageButton:
deleteButton = new ImageButton();
deleteButton.ID = "deleteRiskButton" + planRisk.Id;
deleteButton.ImageUrl = "../../Images/deleteButton.gif";
deleteButton.Click += new ImageClickEventHandler(deleteButton_Click);
deleteButton.OnClientClick = "removeRowAfterDeletion('" + deleteButton.ID + "')";
Run Code Online (Sandbox Code Playgroud)
在这个JavaScript函数中,我有一个对话框,确保用户打算删除有问题的项目.
function removeRowAfterDeletion(buttonId)
{
var deleteConfirmationDialog = confirm("Are you sure you want to remove this risk from your plan?.")
return deleteConfirmationDialog;
}
Run Code Online (Sandbox Code Playgroud)
我的印象是,如果onclientclick函数返回false,则不会发生回发.但是,即使我单击取消,也会调用deleteButton_Click c#函数.
知道问题是什么吗?
asp.net ×13
onclientclick ×13
javascript ×5
c# ×4
onclick ×3
eval ×2
jquery ×2
postback ×2
vb.net ×2
asp.net-3.5 ×1
bind ×1
button ×1
checkbox ×1
client-side ×1
code-behind ×1
firefox ×1
label ×1
validation ×1