按钮Onclick功能不将记录保存到数据库

时间:2017-07-21 12:05:14

标签: javascript jquery ajax spring jsp

受人尊敬的朋友,
我遇到ONCLICK按钮问题。 我编写了将表单保存到数据库的代码。

图片中有2个按钮:

  • 保存按钮(type =“submit”)

  • 保存并重新按钮(type =“button”)

保存一个非常好。使用“提交类型”保存数据库中的记录 但是当谈到 save&新的它没有保存到数据库的记录。

请任何人都可以告诉我它会出现什么问题。

请在下方找到以下代码:

 <div class="btn-lg pull-right">
    <tr>                                    
<td><input type="button" class="primarybtn" value="Save" name="save" onclick="SaveEntity();"/></td>                                 
<td><input type="button" class="newwhitebtn" value="Save and New" name="saveAndNew" onclick="SaveEntity();"/></input> </td>
<td><input type="button" class="cancelbtn" value="Cancel"></td>
                                </tr>
                            </div>

脚本代码:

     <script type="text/javascript">
  function SaveEntity() {   
    alert("Check Save");
      //    get the form values      
        $.ajax({
            url :"/leadstatus_creation",
            type : "POST",      
            contentType: "application/json",
            data : $('#frmCreateEntity').serialize(),
            success : function(data) { 
            if(data != null && data !='')
                {               
                    $('#txtleadname').val(data); 
                }               
            },   
            error : function(XMLHttpRequest, textStatus, errorThrown) { 
                alert(textStatus);
                alert("Lead Name Status:"+$('#txtleadname').val());
            } 
        });
    }
  </script>
  

任何人都可以帮我解决这个问题。

解答:

  

我们可以使用tag而不是使用标签,而不是使用标签。

    <td><button class="primarybtn" name="save" onclick="SaveEntity();"/>Save</button></td>
    <td><button class="newwhitebtn"  name="saveandnew" onclick="SaveEntity();"/>Save and New</button></td>
    <td><button class="cancelbtn"/>Cancel</button></td>

谢谢大家的支持。 。 :-)

1 个答案:

答案 0 :(得分:1)

第二个

<td><input type="button" class="newwhitebtn" id="frmCreateEntity" value="Save and New" name="saveAndNew" onclick="SaveEntity();"/></input> </td>

在此,你也提供了与第一个 frmCreateEntity 相同的 id , 这就是调用函数时的原因

            data : $('#frmCreateEntity').serialize(),

上面的代码解析了DOM的id,当它匹配时,它获取了这个

的内容

<td><input type="submit" class="primarybtn" value="Save" id="frmCreateEntity" name="save" onclick="SaveEntity();"/></td> 这就是它不能保存的原因, 由于文档解析器不知道您使用 id 定义了多少元素作为 frmCreateEntity ,并且当它在第一个元素中找到相同的id时停止搜索 ID frmCreateEntity 。 尝试在两个输入元素中实现不同的id, 它一定会奏效,

此外,我还为您的说明添加了一个解决方法,并在该函数中获取数据以将其保存到数据库中。 检查此代码并在此处运行

&#13;
&#13;
<!DOCTYPE html>
<html>
  <head>
    <title>Sample styled page</title>
  </head>
  <body>
    <div class="btn-lg pull-right">
       <td id="td_1">
         FIRST
         <input type="button" class="primarybtn" value="Save" name="save" id="id_1" onclick="SaveEntity(this);"/>
       </td>
       <td id="td_2">
         SECOND
         <input type="button" class="newwhitebtn" value="Save and New" name="saveAndNew" id="id_2" onclick="SaveEntity(this);"/></input>
       </td>
       <!-- <td><input type="button" class="cancelbtn" value="Cancel"></td> -->
    </div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  </body>
  <script type="text/javascript">
function SaveEntity(event) {
 var obj = document.getElementById(event.id).previousSibling;
 obj.trim;
 console.log(obj.wholeText);
    //  $.ajax({
    //      url :"/leadstatus_creation",
    //      type : "POST",
    //      contentType: "application/json",
    //      data : obj,
    //      success : function(data) {
    //      if(data != null && data !='')
    //          {
    //              $('#txtleadname').val(data);
    //          }
    //      },
    //      error : function(XMLHttpRequest, textStatus, errorThrown) {
    //          alert(textStatus);
    //          alert("Lead Name Status:"+$('#txtleadname').val());
    //      }
    //  });
 }
</script>
</html>
&#13;
&#13;
&#13;

现在,您可以通过不同 ID 获取两个按钮事件的值。 此处还有输出屏幕截图:Screenshot

希望它有所帮助,

谢谢

重新编辑:

查看方式:

<td><input type="button" class="newwhitebtn" id="frmCreateEntity" value="Save and New" name="saveAndNew" onclick="SaveEntity(this);"/></input> </td>