如何在jQuery UI创建的对话框中删除关闭按钮(右上角的X)?
我需要在警告框中更改"确定"按钮的样式.
<head>
<script type="text/javascript">
function show_alert() {
alert("Hello! I am an alert box!");
}
</script>
</head>
<body>
<input type="button" onclick="show_alert()" value="Show alert box" />
</body>Run Code Online (Sandbox Code Playgroud)
我正在使用一个简单的表单,我希望允许用户在表单提交之前确认...我知道使用jQuery会很容易,但我对代码有点困惑...
$(function() {
$(".testform").submit(function() {
$('.submitbtn').text('confirm');
});
});
Run Code Online (Sandbox Code Playgroud)
我知道上面的代码不完整,我希望你的帮助完成它,所以它会发出警告(使用jQuery警报),说"请确认一切是否正确",并将提交按钮上的文字更改为"确认"而不是"提交".如果用户再次点击确认,则会提交表单.我希望这是有道理的.谢谢.
目前,我正在努力用jquery对话框替换"alert"/"confirm".
但是大多数遗留代码都是以某种异步方式编写的,这使得它很难改变.有没有办法让jquery对话框以同步方式工作?(不要使用循环或回调函数)
For example:
function run()
{
var result = confirm("yes or no");
alert( result );
\\more codes here
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,警报和其他代码将在用户选择后执行.
如果我们使用jquery对话框var result = $ dialog.open()它将继续执行异步警报.
目前,我的解决方案是在OK | Cancel功能中使用回调函数.例如:
OK: function ()
{
$dialog.close();
alert("yes");
//more codes here
}
Run Code Online (Sandbox Code Playgroud)
此方法有效,但很难使所有同步代码变为异步,这需要进行大量更改(请参阅以下示例).所以我正在寻找同步jQuery Dialog,它可能吗?
例如:(实际代码比下面的例子复杂得多)
function f1()
{
if ( confirm("hello") ) f2();
alert("no");
}
function f2()
{
if( confirm("world") ) f3();
alert("no");
}
function f3()
{
return confirm("!") ;
}
Run Code Online (Sandbox Code Playgroud)
另一个例子:
vendorObject.on('some-event', function() {
if(confirm("Do you really want to do that?")) …Run Code Online (Sandbox Code Playgroud) 看了很多,似乎无法找到一个JQuery解决方案(可能只是JavaScript的限制):
<a href="somelink.php"
onclick="return confirm('Go to somelink.php?');">Click Here</a>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,当用户单击链接时,如果用户在确认框中单击"确定",则只会转到其href.
我想要做的是使用弹出式div获得更现代的外观.也许是这样的:
<a href="somelink.php"
onclick="return jq_confirm('Go to somelink.php?');">Click Here</a>
Run Code Online (Sandbox Code Playgroud)
(其中jq_confirm是一个自定义的JQuery确认函数,弹出一个带有YES/NO或OK/CANCEL按钮对的漂亮div).
但是,我似乎找不到任何这样的东西.
我已经查看了一些提供类似功能的JQuery小部件库等,但是没有人会等待用户的响应(至少,不是在上面描述的场景中),而是他们只是继续并将用户带到链接(或者运行嵌入在href =''链接片段中的任何JavaScript.我怀疑这是因为虽然您可以将回调函数附加到许多这些小部件以返回true/false值,但onclick事件不会等待响应(回调是异步的),从而破坏了确认框的目的.
我需要的是默认confirm()命令提供的相同类型的halt-all-javascript(模态)功能.这在JQuery(甚至是JavaScript)中是否可行?
因为我不是JavaScript和JQuery的专家,所以我会向你推荐专家.任何JQuery(甚至是纯JavaScript)解决方案都是受欢迎的(如果可能的话).
谢谢 -
function ValidateField(){
var bAllow= true;
//some checking here
if (bAllow == true && apl.val().trim() == "")
{
showDialog();
showDialog().done(function() {
return true; // wanna return true, but not success
}).fail(function() {
return false; //wanna return false, but not success
});
return false; //stop it to execute to next line
}
return bAllow; //success return }
function showDialog(){
var def = $.Deferred();
var modPop = '<div id="diaCom" title="Information?"><p>something something</p></div>';
$("#diaCom").remove();
$(modPop).appendTo('body');
$("#diaCom").dialog({
resizable: false,
draggable: false,
height:150,
width:300,
modal: true,
buttons: …Run Code Online (Sandbox Code Playgroud) 我在UpdatePanel的GridView中有一个TemplateField,其中有一个名为的按钮btnDelete.而不是标准OnClientClick="return confirm('Are you sure?')"我想使用jQuery Dialog.
到目前为止,我能够btnDelete.Attributes["onclick"]在代码隐藏中使用和设置jQuery Dialog代码来设置jQuery.但是,在我有机会点击"确认"或"取消"之前,它会在所有情况下都回发到服务器.
这是它生成的HTML:
<input type="submit" rel="Are you sure?" class="action-link delete" id="ctl00_c1_gvTransfers_ctl02_btnDelete" onclick="return function() {
$('#delete-transfer-confirm').dialog({
buttons: {
'Confirm' : function() { $(this).dialog('close'); return true; },
'Cancel' : function() { $(this).dialog('close'); return false; }
}
});
$('p.message').text($(this).attr('rel'));
$('#delete-transfer-confirm').dialog('open');
};" value="Delete" name="ctl00$c1$gvTransfers$ctl02$btnDelete">
Run Code Online (Sandbox Code Playgroud)
我做错了什么导致这个功能在点击任一按钮之前都不会阻塞?
相反,标准确认工作正常:
<input type="submit" class="action-link delete" id="ctl00_c1_gvTransfers_ctl02_btnDelete" onclick="try{if (!window.confirm('Are you sure?')){return false;};}catch(e1){alert("Unexpected Error:\n\n" + e1.toString());return false;};" value="Delete" name="ctl00$c1$gvTransfers$ctl02$btnDelete">
Run Code Online (Sandbox Code Playgroud)
谢谢,马克
更新:
最终,我不得不使用UseSubmitBehavior ="false"来获取要渲染的name =""属性.然后我不得不重写OnClientClick,将值设置为"return;" 所以默认的__doPostBack()没有被执行.然后我能够连接.live()单击处理程序,它在Confirm上调用__doPostBack():
$('input.delete').live('click', function(e) {
var btnDelete …Run Code Online (Sandbox Code Playgroud) 我需要向用户显示此消息,用户可以单击"是"或"否".如果用户在2分钟内没有响应,则需要关闭窗口.打开新页面是一种方式.我的问题是,是否可以使用确认框进行此操作?确认框可以在2分钟后自动关闭吗?
我在gridview中有一个删除按钮.对于那些不熟悉asp.net的人,我的删除按钮输出如下:
<a id="ctl00_cp1_dtgrAllRates_ctl02_lbDelete"
class="lb"
href="javascript:__doPostBack('ctl00$cp1$dtgrAllRates$ctl02$lbDelete','')">
Delete</a>
Run Code Online (Sandbox Code Playgroud)
我有一个确认对话框,连接到gridview中的所有删除链接,询问用户是否确定要删除.它弹出没问题,但我想点击回发(href值),如果他们点击确认.我不知道如何做到这一点,因为对话框代码与单击的链接分开,所以我不能只抓住'this'上的href,例如
var theID = $(this).attr("href");
Run Code Online (Sandbox Code Playgroud)
然后解雇 有没有什么方法可以将href val作为参数传递给对话框代码或某些东西,以便"确认删除"部分在单击按钮时使用它,如果单击"取消",对话框就会关闭?
这是我的jQuery代码:
$(document).ready(function(){
$("#dialog").dialog({
bgiframe: true,
autoOpen: false,
width: 400,
height: 200,
modal: true,
buttons: {
'Confirm Delete': function() {
$(this).dialog('close');
//fire href here preferably
},
Cancel: function(){
$(this).dialog('close');
}
}
});
$(".lb").click(function(event){
$("#dialog").dialog('open');
event.preventDefault();
});
});
Run Code Online (Sandbox Code Playgroud)
TIA
劳埃德
var error = 1;
$(document).on('click', '.ui-icon-closethick', function(event){
if(error == 1){
alert('error');
event.preventDefault();
event.stopPropagation();
return false;
}
})
Run Code Online (Sandbox Code Playgroud)
如何关闭jQuery UI的Dialog?现在如果我点击关闭按钮(x)然后我有警报错误,但对话框正在关闭.
jquery ×8
javascript ×6
jquery-ui ×5
asp.net ×2
css ×2
dialog ×2
html ×2
asynchronous ×1
confirm ×1
modal-dialog ×1
synchronous ×1