javascript - ajax 按键功能不起作用,ActionResult 参数未收到任何值

标签 javascript jquery ajax asp.net-mvc asynchronous

我想在 ajax 按键事件上更改(计算)文本框的值,但 Controller ActionResult 没有接收到任何要计算的值(接收 null)

 <script>
    $('#TotDiscnt').keypress(function () {           
        //var data = $('#totDiscnt').val();
        $.ajax({
            type: 'Post',
            url: '/Whatever/Discount',
            data: $('#totDiscnt').val(),
            success: function (response) {
                $('#TotPurAmt').val(response);
            }
        });
    });
</script>

在 Controller 上

public ActionResult Discount(string text)
    {

       // calculation

        return Json(sum, JsonRequestBehavior.AllowGet);

我试过

data: { text: request.term },

当我这样做时,ajax 调用没有调用 Controller 方法。还有一件事,我如何将两个 double 值作为参数发送到 ActionResult 方法,形成一个 ajax 调用作为

 <script>
$('#TotDiscnt').keypress(function () {           
    //var data = $('#totDiscnt').val();
    $.ajax({
        type: 'Post',
        url: '/Whatever/Discount',
        data: {num1:$('#totDiscnt').val(),
                     num2:$('#Discnt').val() },
        success: function (response) {
            $('#TotPurAmt').val(response);
        }
    });
});

然后在参数中作为 double 值接收

 public ActionResult Discount(double num1, double num2)
    {
        //calculation

        return Json(sum, JsonRequestBehavior.AllowGet);

最佳答案

是的,您可以添加 keyup 或 keypress 事件。您可以稍微更改代码。

<script>
$('#TotDiscnt').keypress(function () {           
    //var data = $('#totDiscnt').val();
    $.ajax({
        type: 'POST',
        contentType: 'application/json; charset=UTF-8',  //send type of data to sever
        dataType: 'json', //retrun type of data from server
        url: '/Whatever/Discount',
        data: JSON.stringify(text:$(this).val()),

       // data: $('#totDiscnt').val(),
        success: function (response) {
            $('#TotPurAmt').val(response);
        }
    });
});

这里你的 Controller 应该是这样的。

public ActionResult Discount(string text)
{

   // calculation

    return Json(sum, JsonRequestBehavior.AllowGet);
}

Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are removed as of jQuery 3.0. You can use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead. For more detail please visit official site click me

请在评论中告知它是否有效。

关于javascript - ajax 按键功能不起作用,ActionResult 参数未收到任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51120820/

相关文章:

javascript - 通过电子邮件发送带有用户输入主题的 HTML 表单

javascript - 使用 websocket 处理连接丢失

jQuery UI 通过拖放添加选项卡

ajax - 解析 jQuery AJAX 响应

Javascript: "Cancelling"动态脚本标签?

javascript - IE8 : How to set focus to a popup and back without blinking orange

javascript - 如何处理鼠标和键盘的点击事件?

javascript - NetSuite:在记录保存中的项目收据上显示警报不起作用

没有覆盖层的 JQuery 模态对话框

jquery - :Visited 未检测到 AJAX 链接