我第一次提交表单时为了不让页面刷新,更改了form的target;//保存 function addInquireDetail() { if (InquireCheck()){ document.forms[0].target="rfFrame"; var fm=document.forms[0]; var date=$('input[name="quotationDate"]').val(); fm.action = "saveInquireInfoDetail.do?operationType=add"ationDate="+date+"&optionType=2"; fm.submit(); } }第二次提交表单时,我希望表单提交后返回的页面在原来的页面上更新,而不是新打开一个页面,我将target改回了原来的表单的target,并且原表单的target设置的就是"_self",为什么没有达到原来的效果
时间: 2024-03-02 20:48:17 浏览: 16
你将表单的target从"_self"更改为"rfFrame"后,表单提交后会在一个名为"rfFrame"的iframe中打开新页面。但是当你将表单的target再次更改回"_self"后,表单提交后依旧会在当前页面中打开新页面,这是因为浏览器缓存了之前的表单提交状态。要解决这个问题,可以在表单提交后,通过JavaScript的location.reload()方法来刷新当前页面,这样就可以实现在原页面上更新。例如:
```
fm.target = "_self";
fm.submit();
location.reload();
```
相关问题
帮我写代码js让按钮a点击提交表单
好的,以下是一个简单的示例代码:
HTML代码:
```
<form>
<input type="text" name="username" placeholder="请输入用户名">
<input type="password" name="password" placeholder="请输入密码">
<button type="submit" id="submitBtn">提交</button>
</form>
```
JavaScript代码:
```
var submitBtn = document.getElementById("submitBtn");
submitBtn.addEventListener("click", function(event) {
event.preventDefault(); // 防止表单自动提交
var form = event.target.parentElement; // 获取表单元素
form.submit(); // 提交表单
});
```
这段代码会给提交按钮添加一个点击事件监听器,在点击按钮时阻止表单自动提交,然后获取表单元素并手动提交表单。你可以把这段代码放在`<script>`标签中或者单独的JS文件中。
当表单提交时将空字符串转换为null
在表单提交时将空字符串转换为 null 可以通过以下步骤来实现:
1. 监听表单的提交事件;
2. 获取表单中所有的输入元素;
3. 遍历输入元素,对于值为空字符串的元素,将其值设置为 null。
以下是一个示例代码:
```javascript
// 监听表单的提交事件
document.querySelector('form').addEventListener('submit', function(event) {
// 获取表单中所有的输入元素
const inputs = event.target.querySelectorAll('input, textarea');
// 遍历输入元素
inputs.forEach(function(input) {
// 对于值为空字符串的元素,将其值设置为 null
if (input.value === '') {
input.value = null;
}
});
});
```
在上述代码中,我们使用了 querySelectorAll() 方法来获取所有的输入元素,然后使用 forEach() 方法遍历每个元素。对于值为空字符串的元素,我们将其值设置为 null。