jquery - 如何在单击保存按钮时禁用保存按钮和输入字段并重定向到新页面?
问题描述
这是我的表单页面。当我单击保存按钮时,输入字段和保存按钮应该被禁用并提交表单,它被定向到 message.jsp,如果我单击编辑按钮,那么输入字段和保存按钮应该被启用并且编辑内容应该重定向到 message1.jsp 页面。但什么也没发生。请告诉我我做错了什么,我对这些事情不熟悉。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html >
<head>
<title>ed</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btn1").click(function () {
$("#tt1").attr('disabled', 'disabled');
$("#btn1").attr('disabled', true);
window.location.href = "message.jsp";
});
$('#btn2').click(function () {
$('#tt1').removeAttr('disabled');
$('#btn1').removeAttr('disabled');
});
});
</script>
</head>
<body>
<form id="answer">
<input type="text" value="xyz" id="tt1" /><br />
<button type="submit" id="btn1">Save</button>
<button type="submit" id="btn2">Edit</button>
</form>
</body>
</html>
编辑:我想要的是,当单击保存时,所有字段和保存按钮都被禁用并重定向到 Servlet 控制器以提交表单(我以 message.jsp 为例),然后根据代码重定向到其他地方。当我再次打开此页面,所有字段和保存按钮都应禁用,除非单击编辑按钮。 编辑2:我想要的是第一次加载页面时应该启用所有内容,单击保存后,保存按钮n字段应该禁用,当我再次打开该页面进行编辑时,单击编辑按钮后只禁用字段应该启用。
解决方案
如果我目前正确理解您的问题,您只是在不提交的情况下重定向到其他页面。如果您需要submit
重视下一页,您可以action
将表单更改为所需页面,然后将您的表单提交到带有值的页面。另外,如果您需要要在您的其他页面上可用的值,您需要使用readonly
属性而不是disabled
.
演示代码:
$(document).ready(function() {
$("#btn1").click(function() {
$("#tt1").attr('disabled', 'disabled');
$("#btn1").attr('disabled', true);
//change action to message.jsp
$("#answer").attr('action', 'message.jsp');
$("#answer").submit(); //submit
});
$('#btn2').click(function() {
$('#tt1').removeAttr('disabled');
$('#btn1').removeAttr('disabled');
//change action to message1.jsp
$("#answer").attr('action', 'message1.jsp');
$("#answer").submit(); //submit
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="answer" action="">
<input type="text" value="xyz" id="tt1" /><br />
<button type="submit" id="btn1" >Save</button>
<button type="submit" id="btn2">Edit</button>
</form>
更新 1:
您可以使用localStorage存储单击哪个按钮的值,当您的页面再次加载时,您可以检查保存的值,localStorage
并根据此禁用或启用您的按钮。
你的jQuery代码:
$(document).ready(function() {
//check if there is any value in localStorage
if (localStorage.getItem("save") != null) {
//get that value
var value = localStorage.getItem("save");
alert(value);
//if value is btn1
if (value == "btn1") {
//disable
$("#tt1").attr('disabled', 'disabled');
$("#" + value).attr('disabled', true);
} else {
//enable
$('#tt1').removeAttr('disabled');
$('#btn1').removeAttr('disabled');
}
}
$("#btn1").click(function() {
$("#tt1").attr('disabled', 'disabled');
$("#btn1").attr('disabled', true);
var save = "btn1";
console.log(save);
localStorage.clear(); //clear previous data
localStorage.setItem("save", save); //add data to storage
//change action to message.jsp
$("#answer").attr('action', 'message.jsp');
$("#answer").submit(); //submit
});
$('#btn2').click(function() {
$('#tt1').removeAttr('disabled');
$('#btn1').removeAttr('disabled');
var save = "btn2";
console.log(save);
localStorage.clear(); //clear previous data
localStorage.setItem("save", save); //add data to storage
//change action to message1.jsp
$("#answer").attr('action', 'message1.jsp');
$("#answer").submit(); //submit
});
});
推荐阅读
- labview - 调用库函数节点错误 1097
- karate - How to match DB query result and API response directly in karate
- node.js - $lookup with nested array of objects
- python - 如何使用 spider.CrawlerRunner() 或 CrawlerProcess() 在 django 视图中调用scrapy spider
- css - css3 选项卡问题中的 css3 选项卡
- angular - 角度为 6 的材料步进器不起作用[在 browser.js 中找不到动画方法]
- javascript - Calling JS function from external file give error in yii2
- node.js - 如何查看 node.js tmux 会话的 console.log 输出
- python - Close off an endpoint on node.js server by via Kubernetes
- c# - ORA-06502: PL/SQL: numeric or value error: character to number conversion error while getting data from database