Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery未从数字中删除逗号和美元符号_Javascript_Jquery_Visual Studio 2015_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

Javascript Jquery未从数字中删除逗号和美元符号

Javascript Jquery未从数字中删除逗号和美元符号,javascript,jquery,visual-studio-2015,asp.net-core,asp.net-core-mvc,Javascript,Jquery,Visual Studio 2015,Asp.net Core,Asp.net Core Mvc,在我的ASP.NET MVC核心项目中,在下面的视图中中,我使用jquery尝试在提交表单之前从SaleAument输入标记中删除$symbol和逗号。但它什么也没做。当我将警报(“Test”)放在myJSFunction()中时,警报成功弹出,这意味着调用了该函数,但用于删除逗号和$的代码不起作用 型号: public class SaleViewModel { [DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditM

在我的ASP.NET MVC核心项目中,在下面的
视图中
中,我使用jquery尝试在提交表单之前从SaleAument输入标记中删除$symbol和逗号。但它什么也没做。当我将警报(“Test”)放在myJSFunction()中时,警报成功弹出,这意味着调用了该函数,但用于删除逗号和$的代码不起作用

型号

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>
}
控制器

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>
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务UpdateSales(列表模型,字符串returnUrl=null)
{
....
}
查看

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>
}
@model-IList
....
....
@对于(int i=0;ir[i].SaleAmount,new{htmlAttributes=new{@class=“saleAmt”})
....
}
拯救
@节脚本
{
$(函数(){
$(“#目标”)。提交(功能(事件){
event.preventDefault();
myJsFunction();
});
});
函数myJsFunction(){
parseFloat($('.saleAmt').val().replace(/,/g',).replace(/$/g',);
返回false;
}
}

您的代码不会用修改后的文本更新文本框的值。在任何情况下,您都会取消提交,因此不会发布任何内容。你可以用

$("#target").submit(function () {
    var textboxes = $('.saleAmt');
    $.each(textboxes, function(index, item) {
        var text = $(this).val().replace(/[$,]/g, ''); // remove characters
        $(this).val(text); // update value
    });
});

旁注,无需使用
parseFloat()

您的代码不会用修改后的文本更新文本框的值。在任何情况下,您都会取消提交,因此不会发布任何内容。你可以用

$("#target").submit(function () {
    var textboxes = $('.saleAmt');
    $.each(textboxes, function(index, item) {
        var text = $(this).val().replace(/[$,]/g, ''); // remove characters
        $(this).val(text); // update value
    });
});

旁注,无需使用
parseFloat()

替换值,但决不将更新后的值重新分配给文本框。但是您已经取消了提交,因此表单无论如何都不会发回任何内容。请尝试:
parseFloat($('.saleAmt').val($('.saleAmt').val().replace(/,/g',).replace(/$/g',)替换值,但决不将其重新指定给文本框的更新值。但是您已经取消了提交,因此表单无论如何都不会发回任何内容。请尝试:
parseFloat($('.saleAmt').val($('.saleAmt').val().replace(/,/g',).replace(/$/g',)仍不工作。我注意到当我用
$(“#target”).submit(函数(){var textboxs=$('.grantAmt').val();alert(textboxs);)替换代码时
输入,比如说$15481,然后点击Save按钮,弹出$15481的警报,这意味着可能
$。每个(…)
部分都不工作。Oops-应该是
$。每个(文本框、函数(索引、项){
:)但这就是您的原始代码中的内容。您是想更改其他内容吗?我注意到您的代码中的另一件事是,如果我更改
@Html.EditorFor(r=>r[I].StateName)中的其他输入,数据库中只有SaleAmount变为null
除了SaleAmount框,stateName的更改在Db中正确反映。因此,除了SaleAmount仍然为空之外,帖子仍然有效。我在您之前的评论之后编辑了答案:)(它是
$。每个(saleAmt,
),您不可能提交带有问题代码的表单(您已经使用
event.preventDefault();
return false;
)两次取消了它,所以您还没有告诉我们其他一些事情。仍然不起作用。我注意到当我用
$(“#目标”).submit(函数(){var textboxs=$('.grantAmt').val();alert(textboxs);}替换您的代码时;
然后输入,比如说$15481,然后单击Save按钮,弹出$15481的警报,这意味着可能
$。每个(…)
部分都不工作。Oops-应该是
$。每个(文本框、函数(索引、项){
:)但这就是您的原始代码中的内容。您是想更改其他内容吗?我注意到您的代码中的另一件事是,如果我更改
@Html.EditorFor(r=>r[I].StateName)中的其他输入,数据库中只有SaleAmount变为null
除了SaleAmount框,stateName的更改在Db中正确反映。因此,除了SaleAmount仍然为空之外,帖子仍然有效。我在您之前的评论之后编辑了答案:)(它是
$。每个(saleAmt,
),您不可能提交带有问题代码的表单(您已经使用
event.preventDefault();
return false;
两次取消了它),所以还有一些事情您没有告诉我们。