Ich möchte einen Panel-Namen von Javascript erhalten, die erweitert wird. Ich zeige eine Liste von Panel dynamisch von @ item.Name.Wenn ich eine von ihnen erweitern, habe ich versucht, den erweiterten Panel-Namen durch ... var panelId = $ ("# collapse") .attr ("Name"); Aber ich habe nur den ersten Namen des Panels.Wie kann ich Panel-Namen per Javascript erhalten?
Erstens würde ich sagen, ich möchte Datei von Ajax an den Controller mit einem Parameter eines Panel-Namen eines erweitern Panel senden. Jetzt will ich Panel-Namen in Summit-Funktion und dann an den Controller übergeben.
Index
<div class="panel panel-info class" style="height: 450px; width: 300px; overflow-y:scroll;">
@foreach (var item in lstCategory)
{
<div class="panel-heading" id="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" onclick="collapse(@item.Id);" name="@item.Name" id="collapse" href="#@item.Id">@item.Name</a>
</h4>
</div>
<div id="@item.Id" class="panel-collapse collapse in">
<div id="[email protected]">
</div>
</div>
}
</div>
<form id="form" name="form" enctype="multipart/form-data" method="post">
@*<label class="btn btn-block btn-primary">
Browse … <input type="file" name="file" class="filestyle" id="file" style="display: none;" />
</label>*@
<span class="btn btn-default btn-file" id="browse"style="width:100%;">
<input type="file" name="file" class="filestyle" id="file" />
@*<input type="file">*@
</span>
<input type="submit" name="Submit" class="btn" id="Submit" value="Submit" style="width:100%;margin-top:5px;" disabled>
</form>
Javascript
var panelId = $("#collapse").attr("name");
alert("Panel name :" + panelId);
$(document).ready(function (e) {
$('#Submit').click(function (event) {
var file = $("file").data();
var panelId = $("#collapse").attr("name");
alert("Panel name :" + panelId);
var formData = new FormData();
var totalFiles = document.getElementById("file").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("file").files[i];
formData.append("file", file);
}
alert(file);
$.ajax(
{
url: '@Url.Action("Upload","Document")',
type: "POST",
data: { file: formData, Id: panelId },//{ file: formData, value: dam },//formData,
processData: false,
contentType: false,
success: function (response) {
console.log(response);
},
error: function (error) {
console.log(error);
},
});
})
});
Sie können nicht dupliziert IDs ('collapse') auf Ihrer Seite. –
Bitte erklären Sie, welche Sprache das ist? '@foreach (var item in lstCategory)' Ich glaube nicht, dass es Javascript oder HTML ist. – BobRodes
Verwendung kann $ (this) verwenden, um den Namen des aktiven Tags zu erhalten –