stevenjin 2024-12-07 17:01 采纳率: 96.8%
浏览 3
已结题

jquery点击按钮弹出模态对话框后,点击确认按钮后,对该按钮重新赋值,但值没有刷新


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Button Value Update Example</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
 
<button id="myButton">Click Me!</button>
 
<div id="myModal" class="modal">
  <!-- Modal content -->
  <div class="modal-content">
    <span class="close">&times;</span>
    <p>Some text in the Modal..</p>
    <button id="confirmBtn">确认</button>
  </div>
</div>
 
<script>
// 模态对话框的显示和隐藏
$(document).ready(function(){
  $(".modal").css("display", "none");
  
  $("#myButton").click(function(){
    $(".modal").css("display", "block");
  });
  
  $(".close").click(function(){
    $(".modal").css("display", "none");
  });
  
  $("#confirmBtn").click(function(){
    $("#myButton").val("New Value");
    $(".modal").css("display", "none");
  });
});
</script>
 
<style>
/* 模态对话框的样式 */
.modal {
  display: none; 
  position: fixed; 
  z-index: 1; 
  left: 0;
  top: 0;
  width: 100%; 
  height: 100%; 
  overflow: auto; 
  background-color: rgb(0,0,0); 
  background-color: rgba(0,0,0,0.4); 
}
 
.modal-content {
  background-color: #fefefe;
  margin: 15% auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}
 
.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}
 
.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}
</style>
</body>
</html>
  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    你的代码在点击确认按钮后确实会改变按钮的值,但如果你发现值没有立即更新,这可能是因为你正在尝试更改按钮的值,而浏览器可能还没有渲染这个改变。你可以尝试使用 .prop() 方法来更新按钮的值,并确保在尝试更新值之前模态对话框已经隐藏。此外,确保你的代码没有其他地方覆盖或重置按钮的值。

    以下是修改后的代码:

    $(document).ready(function(){
      $(".modal").css("display", "none"); //初始隐藏模态对话框
    
      $("#myButton").click(function(){ //点击按钮显示模态对话框
        $(".modal").css("display", "block");
      });
    
      $(".close").click(function(){ //点击关闭按钮隐藏模态对话框
        $("#confirmBtn").off('click').click(); // 这里先触发一次确认按钮的点击事件以隐藏模态框,然后再解绑防止意外重复触发
        $(".modal").css("display", "none");
      });
    
      $("#confirmBtn").click(function(){ //点击确认按钮更新按钮值和隐藏模态对话框
        $("#myButton").prop("value", "New Value"); //使用.prop()方法来更新按钮的值
        $(".modal").css("display", "none"); //确保在尝试更新值之前模态对话框已经隐藏
      });
    });
    

    这个修改后的代码应该会在点击确认按钮后正确更新按钮的值。如果仍然存在问题,请检查是否有其他JavaScript代码或CSS样式影响按钮的显示。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月7日