我开发了一张表,学生必须输入主题名称和标记。我只使用javascript的数字输入框,但我无法进行验证,因此学生不能输入0作为标记。
$("#insertbotheli13").click(function () {
$("#tablebotheli13").each(function () {
var tds = '<tr>';
jQuery.each($('tr:last td', this), function () {
tds += '<td>' + $(this).html() + '</td>';
});
tds += '</tr>';
if ($('tbody', this).length > 0) {
$('tbody', this).append(tds);
} else {
$(this).append(tds);
}
});
});
$(".allownumericwithoutdecimal").on("keypress keyup blur",function (event) {
$(this).val($(this).val().replace(/[^\d].+/, ""));
if ((event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table id="tablebotheli13" class="table table-striped table-hover">
<input type="button" class="btn green" value="Add New+" id="insertbotheli13"></input>
<thead>
<tr>
<th>Subject</th>
<th> Marks</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" class="form-control subject1" name="subject1">
</td>
<td>
<input type="text" class="form-control marks1 allownumericwithoutdecimal" name="marks1">
</td>
</tr>
</tbody>
</table>
&#13;
答案 0 :(得分:1)
您可以检查输入值是否等于零然后将其删除,请检查下面的代码段。
此外,事件应附加事件委托,因为您正在动态添加输入:
$("body").on("keypress keyup blur paste", ".allownumericwithoutdecimal", function(event) {
if( $(this).val() == "0"){
$(this).val( $(this).val().replace(/0/g, "") );
}
if ((event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
希望这有帮助。
$("#insertbotheli13").click(function() {
$("#tablebotheli13").each(function() {
var tds = '<tr>';
jQuery.each($('tr:last td', this), function() {
tds += '<td>' + $(this).html() + '</td>';
});
tds += '</tr>';
if ($('tbody', this).length > 0) {
$('tbody', this).append(tds);
} else {
$(this).append(tds);
}
});
});
$("body").on("keypress keyup blur paste", ".allownumericwithoutdecimal", function(event) {
if( $(this).val() == "0"){
$(this).val( $(this).val().replace(/0/g, "") );
}
if ((event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table id="tablebotheli13" class="table table-striped table-hover">
<input type="button" class="btn green" value="Add New+" id="insertbotheli13"></input>
<thead>
<tr>
<th>Subject</th>
<th>Marks</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" class="form-control subject1" name="subject1">
</td>
<td>
<input type="text" class="form-control marks1 allownumericwithoutdecimal" name="marks1">
</td>
</tr>
</tbody>
</table>
答案 1 :(得分:0)
试试这个:
[Column("ORD")]
[Display(Name = "Søgeord")]
public string SearchKeysString { get { return SearchKeys.Aggregate<string>((a, b) => a + " " + b); } }
public List<string> SearchKeys { get; set; }
答案 2 :(得分:0)
只需在keyup
上添加条件并删除keypress
事件,因为现在不需要
$("#insertbotheli13").click(function () {
$("#tablebotheli13").each(function () {
var tds = '<tr>';
jQuery.each($('tr:last td', this), function () {
tds += '<td>' + $(this).html() + '</td>';
});
tds += '</tr>';
if ($('tbody', this).length > 0) {
$('tbody', this).append(tds);
} else {
$(this).append(tds);
}
});
});
$(".allownumericwithoutdecimal").on("keyup blur",function (event) {
$(this).val($(this).val().replace(/[^\d].+/, ""));
if(parseInt($(this).val()) <= 0) alert("Marks should be more than Zero");
if ((event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table id="tablebotheli13" class="table table-striped table-hover">
<input type="button" class="btn green" value="Add New+" id="insertbotheli13"></input>
<thead>
<tr>
<th>Subject</th>
<th> Marks</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" class="form-control subject1" name="subject1">
</td>
<td>
<input type="text" class="form-control marks1 allownumericwithoutdecimal" name="marks1">
</td>
</tr>
</tbody>
</table>
答案 3 :(得分:0)
你的javascript调用了一个类allownumericwithoutdecimal
。如果你修改了这个类,你就会得到答案。
你的代码是:
$(".allownumericwithoutdecimal").on("keyup blur",function (event) {
$(this).val($(this).val().replace(/[^\d].+/, ""));
if(parseInt($(this).val()) <= 0) alert("Marks should be more than Zero");
if ((event.which < 48 || event.which > 57)) {
event.preventDefault();
}
});
并替换为此代码:
$(".allownumericwithoutdecimal").keypress(function(event) {
if (!event.which || (49 <= event.which && event.which <= 57) || (48 == event.which && $(this).val())) {
/* */
} else {
event.preventDefault();
}
});
这对我有用。
注意:您还应尝试从html中删除
</input>
结束标记。