Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Jquery 不发两次火_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Jquery 不发两次火

Jquery 不发两次火,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,目标: 按下按钮时,文本框中的值应在公式下方显示一次 问题: 当我点击按钮时,数据将显示两次 我在下面试过了,但没用 $('#myform').one('submit', clickHandler); var clickHandler = function (event) { event.preventDefault(); $("#divProcessing").show(); $.ajax({ url: $(this).attr("action"

目标:
按下按钮时,文本框中的值应在公式下方显示一次

问题:
当我点击按钮时,数据将显示两次

我在下面试过了,但没用

  $('#myform').one('submit', clickHandler);

  var clickHandler = function (event) {

      event.preventDefault();

  $("#divProcessing").show();

  $.ajax({
      url: $(this).attr("action"),
      type: 'POST',
      async: true,
      data: $(this).serialize(),
      dataType: 'json',
      success: function (resp) {
          // Hide the "busy" gif:
          $("#divProcessing").hide();

          // Do something useful with the data:
          $("<h3>" + resp.FirstName + " " + resp.LastName + "</h3>").appendTo("#divResult");
      }
  });
$('myform')。一个('submit',clickHandler);
var clickHandler=函数(事件){
event.preventDefault();
$(“#divProcessing”).show();
$.ajax({
url:$(this.attr(“操作”),
键入:“POST”,
async:true,
数据:$(this).serialize(),
数据类型:“json”,
成功:功能(resp){
//隐藏“忙碌”gif:
$(“#divProcessing”).hide();
//对数据执行一些有用的操作:
$(“”+resp.FirstName+“”+resp.LastName+“”)。附加到(“#divResult”);
}
});
}

信息:
*使用ASP.net mvc和JQuery
*这个代码的基础来自这个

命名空间WebApplication3.控制器
{
公共类HomeController:控制器
{
公共行动结果索引()
{
返回视图();
}
关于()的公共行动结果
{
ViewBag.Message=“您的应用程序描述页。”;
返回视图();
}
公共行动结果联系人()
{
ViewBag.Message=“您的联系人页面。”;
返回视图();
}
[HttpPost]
public ActionResult LongRunningDemoProcess(DemoViewModel模型)
{
睡眠(1000);
返回Json(模型,“Json”);
}
}
公共类DemoViewModel
{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
}
}
输入您的姓名并提交:
@使用(Html.BeginForm(“LongRunningDemoProcess”,“Home”,FormMethod.Post,new{id=“myform”,name=“myform”}))
{
@Html.TextBoxFor(m=>m.FirstName)
@Html.TextBoxFor(m=>m.LastName)
}
//我们希望在服务器进程运行时显示这一点:
正在处理,请稍候

//我们希望在此处显示提交的结果: $(文档).ready(函数(){ //在加载时隐藏“忙”Gif: $(“#divProcessing”).hide(); //将单击处理程序附加到“提交”按钮: $(“#进程”)。单击(函数(){ $('#myform')。提交(); }); //处理表单提交事件,并发出Ajax请求: $(“#myform”)。在(“提交”上,函数(事件){ event.preventDefault(); //显示“忙碌”Gif: $(“#divProcessing”).show(); var url=$(this.attr(“操作”); var formData=$(this.serialize(); $.ajax({ url:url, 类型:“POST”, 数据:formData, 数据类型:“json”, 成功:功能(resp){ //隐藏“忙碌”gif: $(“#divProcessing”).hide(); //对数据执行一些有用的操作: $(“”+resp.FirstName+“”+resp.LastName+“”)。附加到(“#divResult”); } }) }); });
在“提交”按钮上不需要单独的“单击”处理程序。我怀疑这就是它发射两次的原因:

$('#process').click(function () {
      $('#myform').submit();
  });

您明确告知要提交的表单,但在表单中按任何带有
type=“submit”
的按钮都会自动触发提交事件,无需额外代码。因此,您实际上是在订购额外提交的表单。删除click处理程序,它应该只提交一次。

我删除了代码“$('#process')。单击(function(){$('#myform')。submit(););”,一切正常谢谢您的帮助!
$('#process').click(function () {
      $('#myform').submit();
  });