我想在 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/