javascript - 重置表单、重置字段值、重置全部焦点 onSubmit()

标签 javascript forms

之前我找到了一个我没有的问题的解决方案,现在我创造了更多问题,希望找到解决方案。

我有一个提交 URL 的表单:

<form name="urlField" onsubmit="return submitURLFieldForm();">
  <input type="text" name="address" id="addressfield" />
</form> 

该 URL 将在新选项卡/窗口中打开。现在我希望重置该字段,将“http://”添加回来,并将焦点放在最后,准备输入新的 URL。我下面的 JS 适用于除 Opera 之外的所有浏览器。由于页面在所有浏览器中正确加载,包括 Opera(字段 focus()value() 最初都在 <body> 标记中设置),我认为这一定是我的 onSubmit 函数的问题:

function submitURLFieldForm() {
var url = document.getElementById('addressfield').value;
if (!url.match(/^[a-zA-Z]+:\/\//)) {
    url = 'http://' + url;
}
window.open(url);
    document.urlField.address.reset();
    document.urlField.address.focus();
    document.urlField.address.value='http\://';
}

还有其他写法吗?这是马虎吗?

最佳答案

<head>
<script type="text/javascript">
function submitURLFieldForm() {
    var url = document.getElementById('addressfield').value;
    if (!url.match(/^[a-zA-Z]+:\/\//)) {
        url = 'http://' + url;
    }
    window.open(url);
    document.getElementsByName('urlField')[0].reset();
    resetForm();
    return false;
}
window.onload = function() {
    resetForm();
}
function resetForm() {
    var address = document.getElementsByName('address')[0];
    address.focus();
    address.value = "http://";
}
</script>

</head>
<body>
    <form name="urlField" onsubmit="return submitURLFieldForm();">
      <input type="text" name="address" id="addressfield" />
    </form> 
</body>

编辑
检查 Opera 控制台后,添加了一些更改。我希望它能像你想象的那样工作。

关于javascript - 重置表单、重置字段值、重置全部焦点 onSubmit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16284170/

相关文章:

javascript - 超时后 jquery 触发事件

javascript - 为什么 typescript 看不到我的功能?

javascript - 如何从不同的模块调用 React Native 类中的函数

PHP:阻止表单在按下后退时被意外重新处理

javascript - 有没有一种方法可以连接数组,但需要编号?

javascript - 设置输入最大值时出现插值错误

php - jQuery 字段更改提交不起作用

css - 更改占位符文本颜色

javascript - 如何将 JavaScript 添加到 PDF 表单?

javascript - router.post 中的提交按钮后控制台中为 null