【发布时间】:2016-09-16 09:29:24
【问题描述】:
尽管我已经搜索了将近一周的事实,但我找不到一种方法来做我想做的事,所以我在这里。 这就是我想要做的:我有一个应该显示文件名的表单和每个名称的复选框,允许用户选择他想要选择的文件。每个复选框的值是与其相关的文件的路径,每个复选框的 ID 是其文件目录的路径加上一个数字。在我的 JavaScript 中,我尝试通过循环“构建”每个 ID,然后访问我的复选框,但我无法让它工作,我开始有点绝望;所以我希望你们能帮助我。 这是我的cshtml代码:
<div class="modal-dialog modal-lg ">
<div class="modal-content">
@{
string dir = ""+Path.GetDirectoryName(Model);
var listFiles = System.IO.Directory.GetFiles(dir);
var nbFiles = listFiles.Count();
}
<div class="modal-header">
<h4 style="word-wrap:break-word;" class="modal-title">Fichiers contenus dans le répertoire @dir</h4>
<h3>Nombre de fichiers: @nbFiles</h3>
</div>
@{var nb = 0; var idCheck = "";}
<div class="modal-body">
<form class="frmMoveFile">
@foreach (var file in listFiles)
{
idCheck = "check-"+nb+"-"+dir;
<div style="border:ridge">
<p>
<b>Fichier</b> : @Path.GetFileNameWithoutExtension(file)
<b>Extension :</b> @Path.GetExtension(file)
<input class="btn btn-primary" type="checkbox" id=@idCheck value=@file />
</p>
</div>
nb++;
}
<br />
<br />
</form>
<div class="center">
@{
var idBtnOk =Model;
}
<button value="@dir" class="btnFrmMove">Déplacer fichiers sélectionnés vers l'outbox</button>
<input class="btn btn-success" type="submit" value="Supprimer log d'erreur">
</div>
</div>
</div>
这里是 Javascript 代码:
<script type="text/javascript">
$('.btnFrmMove').click(function () {
var path = $(this).attr("value");
alert(path);
for (var i = 0; i < 2; i++){
var idCheckBox = "check-" + i + "-" + path;
if ($(idCheckBox).is(":checked")) {
alert($(idCheckBox).attr("value"));
}
}
})
</script>
我错过了什么吗?到目前为止,我还没有做过很多 Web 开发,所以这可能是初学者的错误
【问题讨论】:
-
我认为您缺少双引号:id=@idCheck -> id="@idCheck"
-
双引号不能更好地工作..
-
@Timothée 你能打印和比较你在循环中创建的 id,即
idCheckBox的值和生成的 html 中的值吗? -
@Chintan 我已经尝试过了,它给了我完全相同的东西。我没有指定这个视图是用不同的模型创建的很多次,这就是为什么“btnFrmMove”是一个类而不是 ID,也许我应该有?您还认为我的 ID 中有“\”这一事实可能会搞砸事情吗?我试图删除它们,但它并没有改变任何东西,但这可能是问题的一部分吗?
-
/ 是一个元字符。它需要逃脱。 api.jquery.com/category/selectors
标签: javascript c# jquery html checkbox