【发布时间】:2015-08-07 04:32:21
【问题描述】:
抱歉,这让我发疯了,但是当我将按钮切换到链接时,我的模式对话框没有出现。基本上对于这个功能(对不起,我不得不取出公司敏感数据,所以一些代码丢失但仍然有效)我只希望编辑器放入一个带有 id 或类的链接,该链接不起作用,但地址打开一个对话框,其中包含地址 url。
我可以使用按钮进行此操作,但这不适用于下面的链接和代码。他们还手动将链接输入到 p-tag 中,并想知道是否可以通过 href 捕获它。
$(function() {
var dialog, form,
tips = $( ".validateTips" );
function addUser() {
var valid = true;
allFields.removeClass( "ui-state-error" );
valid = valid && checkLength( name, "username", 3, 16 );
valid = valid && checkLength( email, "email", 6, 80 );
valid = valid && checkLength( password, "password", 5, 16 );
valid = valid && checkRegexp( name, /^[a-z]([0-9a-z_\s])+$/i, "Username may consist of a-z, 0-9, underscores, spaces and must begin with a letter." );
valid = valid && checkRegexp( email, emailRegex, "eg. ui@jquery.com" );
valid = valid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );
if ( valid ) {
$( "#users tbody" ).append( "<tr>" +
"<td>" + name.val() + "</td>" +
"<td>" + email.val() + "</td>" +
"<td>" + password.val() + "</td>" +
"</tr>" );
dialog.dialog( "close" );
}
return valid;
}
dialog = $( "#dialog-form" ).dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
});
form = dialog.find( "form" ).on( "submit", function( event ) {
event.preventDefault();
addUser();
});
$( "#create-link" ).a().on( "click", function(e) {
e.preventDefault();
dialog.dialog( "open" );
});
});
<div><a href="https://xyz" id="create-link">Perma-link</a></div>
<div id="dialog-form" title="Link Address">
<p class="validateTips">https://xyz</p>
</div>
注意 - 我完全理解在模式框中捕获链接很奇怪,但我们必须这样做,因为供应商不会在 url 中显示完整的活动链接。因此,当我们的用户尝试共享页面时,他们会在浏览器中复制 url,这会将其他用户带到任何地方。此处的链接将他们带到永久页面。我知道这很愚蠢但需要。
【问题讨论】:
-
你在使用 jQueryUI 吗?可能要添加该标签。
-
@benjarwar - 添加。我不想特定于版本,因为我可以切换。
-
当然,但是 $.dialog() 不是标准 jQuery 库中的函数。你确定你的页面上加载了 jQueryUI 吗?
-
@benjarwar - 它已加载。当我更改链接并放入按钮时,这很好用。
-
$( "#create-link" ).a()中的.a()是什么?很确定方法 a() 不是任何形式的 jquery 或 jquery UI 方法。
标签: javascript jquery jquery-ui