ASP.NET MVC 提交按钮单击不触发
本文关键字:单击 按钮 NET MVC 提交 ASP | 更新日期: 2023-09-27 18:35:08
我有按钮单击事件触发的问题。我在同一视图上有两个按钮,但由于某种原因,在一个按钮单击另一个按钮单击事件后不会触发。你能帮上什么忙吗?如果您在复制数据按钮单击后看到下面,则获取数据按钮单击不会触发。
<div id ="MainDiv">
<table>
<tr>
<td>
<h4> Please Select the Environment :</h4>
</td>
</tr>
<tr>
<td>
@Html.DropDownList(
"SelectedEnvironmentID",
new SelectList(
Model.EnvironmentViewModel.Select(x => new { Value = x.Id, Text =
x.Name }),
"Value",
"Text"), new { @onchange = "HideElements()" }
)
</td>
</tr>
<tr>
<td>
<h4> Please Select the Version :</h4>
</td>
</tr>
<tr>
<td>
@Html.DropDownList(
"SelectedVersionID",
new SelectList(
Model.VersionsModel.Select(x => new { Value = x.Id, Text = x.Number }),
"Value",
"Text"), new { @onchange = "HideElements()" }
)
</td>
</tr>
<tr>
<td>
<input id="getData" name="ViewServerData" type="submit" value="View Profiles" />
</td>
</tr>
</table>
</div>
<p></p>
<div id ="ProfileCopyDiv" class="Copy" >
<table>
<tr>
<td>
<h4> Please Select the Environment To Copy Selected Server Profile:</h4>
</td>
</tr>
<tr>
<td>
@Html.DropDownList(
"SelectedEnvironmentID2",
new SelectList(
Model.EnvironmentViewModel.Select(x => new { Value = x.Id, Text =
x.Name }),
"Value",
"Text"), new { }
)
</td>
</tr>
<tr>
<td>
<h4> Please Select the Version To Copy Selected Server Profile:</h4>
</td>
</tr>
<tr>
<td>
@Html.DropDownList(
"SelectedVersionID2",
new SelectList(
Model.VersionsModel.Select(x => new { Value = x.Id, Text = x.Number }),
"Value",
"Text"), new { }
)
</td>
</tr>
<tr>
<td>
<h4> Please Select the PlatformProfile To Copy:</h4>
</td>
</tr>
<tr>
<td>
@Html.DropDownList(
"SelectedProfileID2", selectList: new SelectList(
Model.PlatformProfilewModel.Select(x => new { Value = x.Id, Text =
x.Name }),
"Value",
"Text"), htmlAttributes: new { }
)
</td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td> <input id="copyData" name="SnapshotData" type="submit" value="Submit" /> </td>
</tr>
<tr>
<td></td>
</tr>
</table>
</div>
<script type="text/javascript">
$(function() {
@grid1.GetJavaScript();
@grid2.GetJavaScript();
$("#getData").click(function() {
alert("Test");
document.getElementById('gridWrapper1').style.display = 'block';
document.getElementById('gridWrapper2').style.display = 'block';
document.getElementById('gridheader').style.display = 'block';
$('#gridheader').empty();
//var content = "<table><tr><td><h4>Selected Environment :" +
$('#SelectedEnvironmentID :selected').text() + " </h4></td>" +
//"<td><h4> Selected Version: " + $('#SelectedVersionID :selected').text()
+ "</h4></td></tr></table>";
//$('#gridheader').append(content);
var url = '@Url.Action("GetServersWithSettings")';
url = url + '?envtid=' + $("#SelectedEnvironmentID").val() + '&versionid=' +
$("#SelectedVersionID").val();
$("#ServersWS").jqGrid('setGridParam', { url: url }).trigger('reloadGrid');
alert(url);
var url1 = '@Url.Action("GetServersWithZeroSettings")';
url1 = url1 + '?envtid=' + $("#SelectedEnvironmentID").val() + '&versionid=' + $("#SelectedVersionID").val();
$("#ServersWNS").jqGrid('setGridParam', { url: url1 }).trigger('reloadGrid');
alert(url1);
});
$("#copyData").click(function() {
var selectedRowId = $('#ServersWS').jqGrid('getGridParam', 'selrow');
var rowData = jQuery("#ServersWS").jqGrid('getRowData', selectedRowId);
$("#MainDiv *").attr("disabled", false).off('click');
var url = '@Url.Action("Index")';
//url = url + '?envtid=' + $("#SelectedEnvironmentID").val() + '&versionid=' + $("#SelectedVersionID").val()
// + '&profileid=' + rowData['ProfileId'] + '&envtid2=' + $("#SelectedEnvironmentID2").val() + '&versionid2=' + $("#SelectedVersionID2").val();
HideElements();
$.ajax({
url: url,
data: {
BaseEnvtId: $("#SelectedEnvironmentID").val(),
BaseVersionId: $("#SelectedVersionID").val(),
BaseProfileId: rowData['ProfileId'],
NewEnvtId: $("#SelectedEnvironmentID2").val(),
NewVersionId: $("#SelectedVersionID2").val(),
NewProfileId: $("#SelectedProfileID2").val(),
},
type: 'POST',
datatype: 'json',
success: function(data) {
//var content = "<div style=/""color: green ;font-weight:900;/"">Baseline Profile Copied Successfully</div>";
$("#MainDiv *").attr("disabled", true).off('click');
document.getElementById('ProfileCopyDiv').style.display = 'block';
$("#MainDiv *").attr("disabled", false).off('click');
document.getElementById('displaySuccess').style.display = 'block';
$("#ProfileCopyDiv *").attr("disabled", true).off('click');
document.getElementById('ProfileCopyDiv').style.display = 'none';
},
error: function() { alert('something bad happened'); }
});
});
});
</script>
如果您在复制数据按钮单击后看到下面,则获取数据按钮单击不会触发。
这是因为您正在禁用单击复制数据时作为 #MainDiv
后代的所有元素的单击事件。所以这种行为是很自然的。
$("#copyData").click(function() {
var selectedRowId = $('#ServersWS').jqGrid('getGridParam', 'selrow');
var rowData = jQuery("#ServersWS").jqGrid('getRowData', selectedRowId);
$("#MainDiv *").attr("disabled", false).off('click'); //<---- HERE
var url = '@Url.Action("Index")';
因为关闭会关闭事件,在这里您的不幸按钮将由#MainDiv *
选择器选择以关闭点击事件。
也最好使用prop
而不是attr
你可能有一些
糟糕的javascript,它抛出了一个错误,没有看到所有的东西是不可能说出来的。尝试在调试器中逐步执行它(使用 Chrome 的开发者工具),看看是否收到错误消息。也许是 HideElements() 函数。