用户在input页面的form表单中输入数字后,单击“提交”后,提交到show_receive页面,在此页面显示提交后如图所示的运算结果,如果未输入正确的值,就提交form表单,则会重定向到show页面,此页面会在会输出时间,然后10秒后跳转到input页面显示时间
时间: 2024-11-30 10:22:57 浏览: 37
这个需求涉及到前端HTML、JavaScript以及后端Java(或类似服务器端语言)之间的交互。这里我会简要描述一下实现步骤:
1. **HTML & JavaScript (前端)**:
- 创建一个`<form>`标签,包含一个用于接收数字的`<input type="number">`元素,以及一个提交按钮。
- 使用JavaScript事件监听`submit`事件,当用户点击提交时阻止默认行为,进行数值验证。
```html
<form id="myForm">
<label for="numberInput">请输入数字:</label>
<input type="number" id="numberInput" required>
<button type="submit" onclick="validateAndSubmit()">提交</button>
</form>
<script>
function validateAndSubmit() {
// 验证输入是否为数字
var input = document.getElementById("numberInput").value;
if (!isNaN(input)) {
// 如果正确,发送Ajax请求到服务器
submitToServer(input);
} else {
// 如果错误,阻止默认行为并跳转到show页面
event.preventDefault();
window.location.href = "show.html";
}
}
// 假设这里有一个sendAjaxRequest函数用于异步发送数据
function submitToServer(number) {
sendAjaxRequest(number, 'show_receive');
}
</script>
```
2. **Java (后端)**:
- 创建一个处理POST请求的方法(例如使用Spring MVC),接收传来的数字并计算结果。
- 如果没有接收到正确的数字,返回一个HTTP状态码(比如400 Bad Request)和一个错误消息,前端可以根据响应进行相应处理。
```java
// 这是在控制器中的一个例子
@PostMapping("/receive")
public ResponseEntity<String> receiveNumber(@RequestParam double number) {
try {
// 计算并返回结果
double result = performCalculation(number);
return new ResponseEntity<>(result, HttpStatus.OK);
} catch (IllegalArgumentException e) {
// 如果输入不是数字,抛出异常
throw new BadRequestException("无效的输入");
}
}
private double performCalculation(double number) {
// 在这里实现具体的计算逻辑
}
```
3. **Show 页面**:
- 显示当前的时间,然后设置一个定时器在10秒后自动跳转回`input.html`。
```javascript
window.onload = function() {
var currentTime = new Date().toLocaleTimeString();
document.getElementById("currentTime").innerText = currentTime;
setTimeout(function() {
window.location.href = "input.html";
}, 10000);
};
```
阅读全文