【问题标题】:Button not call post form with Razor C#按钮不使用 Razor C# 调用发布表单
【发布时间】:2014-03-11 19:50:17
【问题描述】:

当用户单击“Atualizar”按钮时,我有一个带有帖子的页面,而不是调用帖子,称为 JQuery。如何做到这一点?

<form action="/Conselho/Detalhar/6" method="post">    <div class="row">
        <h3>Visualizando Conselho Profissional</h3><hr>
        <input data-val="true" data-val-number="The field ConselhoID must be a number." data-val-required="O campo ConselhoID é obrigatório." id="ConselhoID" name="ConselhoID" type="hidden" value="6">
        <div class="col-md-2">           
            <label for="Sigla">Sigla</label> <span class="field-validation-valid" data-valmsg-for="Sigla" data-valmsg-replace="true"></span><br>    
            <input class="form-control" id="Sigla" name="Sigla" type="text" value="CREA"><br>
        </div>
        <div class="col-md-10">           
            <label for="Descricao">Descrição</label> <span class="field-validation-valid" data-valmsg-for="Descricao" data-valmsg-replace="true"></span><br>    
            <input class="form-control" id="Descricao" name="Descricao" type="text" value="Conselho Federal de Engenharia e Agronomia"><br>
        </div>                
        <div class="col-md-5">        
            <div class="botoes">   
              <input name="btnSubmit" class="btn btn-success" type="submit" value="Salvar">&nbsp;&nbsp;   
              <input name="btnSubmit" class="btn btn-warning" type="submit" value="Excluir">&nbsp;&nbsp;   
              <input name="btnSubmit" class="btn btn-info" type="submit" value="Atualizar">&nbsp;&nbsp;
              <a class="btn btn-default" href="/Conselho/Index">Voltar</a>&nbsp;&nbsp;</div>          
        </div>        
    </div>    
</form>

【问题讨论】:

  • 您的意思是要使用 AJAX 调用发布表单数据吗?您可能不需要该表格。或者您可能只想拦截 submit 事件。到目前为止你有什么?

标签: c# jquery asp.net-mvc razor


【解决方案1】:
  1. 您应该添加一个 id 属性,以便为按钮提供一个简单、独特的选择器。在这个例子中我给了它“Atualizar”
  2. 为按钮编写一个 javascript 事件处理程序
  3. 防止默认行为,在这种情况下是表单发布。
  4. 或者,您可以使用按钮标签,默认情况下不会提交表单

    var doSomething = function(){ //你的代码在这里 }; $('#Atualizar').click(function(e) { e.preventDefault(); 做一点事(); });

替代方案:

【讨论】:

    【解决方案2】:

    在javascript中,你可以监听这个特定按钮的点击事件,获取这个按钮的表单,序列化表单并将其发布到动作方法的url。 $(函数(){

      $("#Atualizar").click(function(e){
        e.preventDefault(); //prevent default form submit behaviour
    
        var _this=$(this);
        var _form=_this.closest("form");
        $.post(_form.attr("action"),_form.serialize(),function(res){
          // do something with res
        });
    
      });
    
    });
    

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2022-01-18
      相关资源
      最近更新 更多