Javascript jquery对话框没有';t在手风琴mvc剃须刀中工作
我正在从事razor项目,需要在其中显示jquery模式弹出窗口。当它不是从手风琴上启动时,弹出窗口显示良好,但一旦我将它放在那里,按钮就不会显示弹出窗口,而是从不同的按钮触发功能 我在标记中有以下内容:Javascript jquery对话框没有';t在手风琴mvc剃须刀中工作,javascript,jquery,asp.net-mvc-3,jquery-ui,razor,Javascript,Jquery,Asp.net Mvc 3,Jquery Ui,Razor,我正在从事razor项目,需要在其中显示jquery模式弹出窗口。当它不是从手风琴上启动时,弹出窗口显示良好,但一旦我将它放在那里,按钮就不会显示弹出窗口,而是从不同的按钮触发功能 我在标记中有以下内容: @using (Html.BeginForm("ASPXView", "Report", FormMethod.Post)) { @Html.ValidationSummary(true, "Password change was unsuccessful. Ple
@using (Html.BeginForm("ASPXView", "Report", FormMethod.Post)) {
@Html.ValidationSummary(true,
"Password change was unsuccessful. Please correct the errors and try again.")
<div>
@Html.Hidden("Id", Model.Report.Id)
<div id="accordion">
@foreach (var item in Model.Parameters)
{
<h3><a href="#">@Html.LabelFor(m => item.Name, item.Prompt)</a></h3>
<div>
<div class="editor-label">
Search @*Html.TextBox("Search")*@
<input id="@("Search" + item.Name)" type="text" name="q" data-autocomplete="@Url.Action("QuickSearch/" + item.Name, "Report")" />
</div>
<div class="editor-field">
<select multiple id="@("Select" +item.Name)" name="@("Select" +item.Name)"></select>
</div>
<div class="removed">
<button id="opener">Open Dialog</button>
</div>
</div>
}
</div>
<p style="text-align: right">
<input type="submit" value="Submit" />
</p>
</div>
}
<div id="dialog" title="Basic dialog">
<p>Test Content.</p>
</div>
@使用(Html.BeginForm(“ASPXView”,“Report”,FormMethod.Post)){
@Html.ValidationSummary(true,
“密码更改失败。请更正错误并重试。”)
@Html.Hidden(“Id”,Model.Report.Id)
@foreach(Model.Parameters中的var项)
{
搜索@*Html.TextBox(“搜索”)*@
打开对话框
}
}
测试内容
JS代码:
<script type="text/javascript">
var openDialog = function () {
$('#dialog').dialog('option', 'buttons', {
"Cancel": function () {
$('#dialog').dialog('close');
}
});
$('#dialog').dialog('open');
};
$(function () {
$("#dialog").dialog({
autoOpen: false,
show: "blind",
hide: "explode"
});
$('#opener').click(openDialog);
})
</script>
var openDialog=函数(){
$('#dialog')。dialog('选项','按钮'{
“取消”:函数(){
$('dialog')。dialog('close');
}
});
$('dialog')。dialog('open');
};
$(函数(){
$(“#对话框”)。对话框({
自动打开:错误,
表演:“盲人”,
隐藏:“爆炸”
});
$(“#opener”)。单击(打开对话框);
})
正如我所说,当我将打开的对话框放在对话框div下面,在accordio div之外,弹出窗口会正常出现,但一旦我把按钮放在那里,弹出窗口就不会出现
提前谢谢你的建议
JS代码更新:
<script type="text/javascript">
$(function () {
$('#opener').click(function () {
$("#dialog").dialog('destroy');
$("#dialog").attr("title", "Your Title Heren");
$("#dialog").dialog({
height: 620,
width: 700,
modal: true
});
});
})
</script>
$(函数(){
$(“#开场白”)。单击(函数(){
$(“#dialog”).dialog('destroy');
$(“#dialog”).attr(“标题”,“此处为您的标题”);
$(“#对话框”)。对话框({
身高:620,
宽度:700,
莫代尔:对
});
});
})
用这个代码替换我的代码后,我只能从手风琴中的第一个项目看到弹出窗口,而不能从其他两个项目看到弹出窗口。
此外,一旦弹出窗口显示在屏幕上,回发就会发生,并且附加到另一个按钮上的事件也会发生提交按钮。你认为这是为什么
谢谢也许你应该有这样的jQuery
$('button[id^=opener]').click(function (){
$("#dialog").dialog('destroy');
$("#dialog").attr("title", "Your Title Heren");
$("#dialog").dialog({
height: 620,
width: 700,
modal: true
});
});
$('button[id^=opener]').click(function (){
// Rest Continues
编辑:
加价应该是这样的
@int i = 0;
@foreach (var item in Model.Parameters)
{
// your rest of the Code
<div class="removed">
<button id="opener"+i>Open Dialog</button>
</div>
</div>
i++;
}
请检查我编辑的代码和下面的描述,解释发生了什么。非常感谢您的帮助$(“#dialog”).dialog('destroy');会破坏对话框,而“openDialog”中的事件只执行“打开”操作,清除该破坏操作将使对话框打开多次。@HaBo您是指按钮的id,在本例中为“打开者”?Thanks@HaBo现在代码什么都不做,甚至不显示弹出窗口。请在这里找到完整的代码,也许你可以找到为什么不工作。非常感谢您的帮助。请检查浏览器上的源代码、按钮的ID是如何创建的,如果没有创建像opener0、opener1、opener2这样的ID,请将代码更改为“打开”对话框