我有一个简短的问题。我有一个带for循环的表格。每个for循环都有一个文本框。我想有两个按钮,当我单击一个按钮时,所有文本框都将填充按钮中的值。例如,当我单击“添加50分钟”按钮时,我希望我的所有文本框都填充50。如果我单击“添加110分钟”按钮(附上屏幕截图),情况也是如此。
这是我的表格
@using (Html.BeginForm("Index", "Minutes", FormMethod.Post, new { enctype = "multipart/form-date", onsubmit = "popup()" }))
{
@Html.ValidationSummary(true)
<fieldset>
<div>
<table id="tablereport" class="table table-striped table-bordered table-hover table-condensed">
<thead style="background-color:black; font-weight:bold; color:aliceblue">
<tr>
</thead>
<tr>
<td><b>@Html.Label("Date :")</b></td>
<td>@Html.TextBox("datepicker", DateTime.Now.ToString("MM/dd/yyyy"), new { required = "required" })</td>
</tr>
<tr>
<td><input type="button" id="btnSetText" value="Add 50 Minutes" class="btn btn-default" onclick="setText" /></td>
<td><input type="button" value="Add 110 Minutes" class="btn btn-default" /></td>
</tr>
</table>
</div>
@if (ViewBag.Message != null)
{
<div id="dialog-message" title="Alert !!">
<p>
<span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
@ViewBag.Message
</p>
</div>
}
<table id="tablereport" class="table table-striped table-bordered table-hover table-condensed">
<thead style="background-color:black; font-weight:bold; color:aliceblue">
<tr>
</thead>
<tr>
<th>Class ID</th>
<th>Course Title</th>
<th>Department</th>
<th>SID</th>
<th>Full Name</th>
<th>Minutes</th>
</tr>
@for (var i = 0; i < Model.Count; i++)
{
<tr>
<td>
@Html.DisplayFor(model => model[i].ClassID)
@Html.HiddenFor(model => model[i].ClassID)
</td>
<td>
@Html.DisplayFor(model => model[i].CourseTitle)
@Html.HiddenFor(model => model[i].CourseTitle)
</td>
<td>
@Html.DisplayFor(model => model[i].Department)
@Html.HiddenFor(model => model[i].Department)
</td>
<td>
@Html.DisplayFor(model => model[i].SID)
@Html.HiddenFor(model => model[i].SID)
</td>
<td>
@Html.DisplayFor(model => model[i].FullName)
@Html.HiddenFor(model => model[i].FullName)
</td>
<td>
@Html.TextBoxFor(model => model[i].Minutes, new { @Value = "0" })
@Html.ValidationMessageFor(model => model[i].Minutes)
</td>
</tr>
}
</table>
<table align="center">
<tr>
<td><input type="submit" value="Save" class="btn btn-default" onclick="popup()" /></td>
</tr>
</table>
</fieldset>
}
这是我的剧本
<script>
var date = new Date();
var maxdate = date.getDate();
//var currentDate = $(".selector").datepicker("getDate");
$(function () {
$("#datepicker").datepicker({
defaultDate: maxdate,
minDate: '-1M',
maxDate: '+0D'
});
});
**function setText(){
var setText = document.getElementById('setText');
setText.value = '50';
}**
我拥有的脚本正在运行,但是只会填充一个文本框。
谢谢!
答案 0 :(得分:0)
那么id对于DOM中的每个元素应该是唯一的。即使在您的情况下,有多个具有相同ID的元素,document.getElementById()
函数也会返回一个元素(第一个具有ID的元素)。您想要做的是向每个文本框添加一个类,然后使用document.getElementsByClassName()
来返回具有该类的所有元素的列表。
例如:
$("#add-50").on('click', function() {
// ill intentionally use vanilla js here
var inputs = document.getElementsByClassName('textbox');
for (var i = 0; i < inputs.length; i++) {
var input1 = inputs[i];
input1.value = '50';
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<button id="add-50">Click Me for 50</button><br/>
<input class="textbox" type="text" /><br/>
<input class="textbox" type="text" /><br/>
<input class="textbox" type="text" /><br/>
<input class="textbox" type="text" /><br/>
<input class="textbox" type="text" />
</div>
答案 1 :(得分:0)
您可以将所有文本框包装在div中,向所有文本框添加一个类,然后使用类似以下的内容:
function setValue(value){
$('#divWithtextboxes .TextboxClass').each(function (i) {
$(this).val(value);
<br>
});<br>