내 ASP.NET MVC 핵심 프로젝트에서 다음을 입력하십시오. View
jquery를 사용하여 양식을 제출하기 전에 SaleAmount 입력 태그에서 $ 기호와 쉼표를 제거하려고합니다. 하지만 아무 것도하지 않습니다. myJSFunction() 안에 alert ('Test')를 넣으면 경고가 성공적으로 팝업되어 함수가 호출되었지만 쉼표를 제거하는 코드이고 $가 작동하지 않는다는 의미입니다.Jquery는 숫자에서 쉼표와 달러 기호를 제거하지 않음
모델 :
public class SaleViewModel
{
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public float? SaleAmount { get; set; }
....
}
컨트롤러 :
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> UpdateSales(List<SaleViewModel> model, string returnUrl = null)
{
....
}
보기 :
이@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>
}
parseFloat()
당신의 값을 대체 사용하지하지만 결코를 재 할당 할 필요가 없습니다. 그러나 어쨌든 제출을 취소 했으므로 양식은 아무 것도 표시하지 않습니다. –try :'parseFloat ($ ('. saleAmt'). val ($ ('. saleAmt')) val(). (/ $/g, '')); ' –