nam*_*nam 0 javascript jquery asp.net-core-mvc visual-studio-2015 asp.net-core
在我的 ASP.NET MVC Core 项目中,在下面View
我使用 jquery 尝试在提交表单之前从 SaleAmount 输入标记中删除 $ 符号和逗号。但它没有做任何事情。当我将 alert('Test') 放入 myJSFunction() 中时,警报成功弹出,这意味着该函数被调用,但它是用于删除逗号的代码,并且 $ 不起作用。
型号:
public class SaleViewModel
{
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public float? SaleAmount { get; set; }
....
}
Run Code Online (Sandbox Code Playgroud)
控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> UpdateSales(List<SaleViewModel> model, string returnUrl = null)
{
....
}
Run Code Online (Sandbox Code Playgroud)
查看:
@model IList<MyProj.Models.SaleViewModel>
....
<form id="target" asp-controller="DbRelated" asp-action="UpdateSales" asp-route-returnurl="@ViewData[" ReturnUrl"]" method="post" onsubmit="myJsFunction()">
<table class="table">
<thead>
....
</thead>
<tbody>
@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>@Html.EditorFor(r => r[i].SaleAmount, new { htmlAttributes = new { @class = "saleAmt" } })</td>
....
</tr>
}
</tbody>
</table>
<button type="submit" class="btn btn-default">Save</button>
</form>
@section scripts
{
<script>
$(function () {
$("#target").submit(function (event) {
event.preventDefault();
myJsFunction();
});
});
function myJsFunction() {
parseFloat($('.saleAmt').val().replace(/,/g, '').replace(/$/g, ''));
return false;
}
</script>
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您的代码不会使用修改后的文本更新文本框的值。无论如何,您取消提交,因此不会发布任何内容。您可以使用
$("#target").submit(function () {
var textboxes = $('.saleAmt');
$.each(textboxes, function(index, item) {
var text = $(this).val().replace(/[$,]/g, ''); // remove characters
$(this).val(text); // update value
});
});
Run Code Online (Sandbox Code Playgroud)
旁注,没有必要使用 parseFloat()
归档时间: |
|
查看次数: |
1875 次 |
最近记录: |