我想在ajax keypress事件上更改(计算)文本框的值,但是控制器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>
在控制器上
public ActionResult Discount(string text)
{
// calculation
return Json(sum, JsonRequestBehavior.AllowGet);
我尝试过
数据:{文本: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);
}
});
});
然后以类似参数的双值形式接收
public ActionResult Discount(double num1, double num2)
{
//calculation
return Json(sum, JsonRequestBehavior.AllowGet);
答案 0 :(得分:2)
是的,您可以添加按键或按键事件。您可以稍微更改代码。
<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);
}
});
});
此处的控制器应为
public ActionResult Discount(string text)
{
// calculation
return Json(sum, JsonRequestBehavior.AllowGet);
}
弃用注意事项:从jQuery 3.0开始,jqXHR.success(),jqXHR.error()和jqXHR.complete()回调已删除。您可以改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。 有关更多详细信息,请访问官方网站click me
请在评论中告知它是否有效。
答案 1 :(得分:0)
要将ajax调用中的多个值发送给ActionResults的参数,请执行以下操作: 脚本:
<script>
$(document).ready(function () {
$('#btnCalculate').click(function () {
$.ajax({
type: 'Post',
url: '/Sales/Calculate',
data: { num1: $('#txtNum1').val(), num2: $('#txtNum2').val(),//so on.... },
success: function (response) {
$('#txtSum').val(response)
}
});
});
});
</script>
并在控制器上
public ActionResult Calculate(int num1, int num2)
{
int sum = 0;
sum = num1 + num2;
return Json(sum, JsonRequestBehavior.AllowGet);
}