首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重置表单、重置字段值、重置焦点所有onSubmit()

重置表单、重置字段值、重置焦点所有onSubmit()
EN

Stack Overflow用户
提问于 2013-04-30 00:57:53
回答 1查看 1.4K关注 0票数 1

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

我有一个提交URL的表单:

代码语言:javascript
复制
<form name="urlField" onsubmit="return submitURLFieldForm();">
  <input type="text" name="address" id="addressfield" />
</form> 

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

代码语言:javascript
复制
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\://';
}

有没有其他的方式来写这篇文章?这是不是很草率?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-30 01:20:07

代码语言:javascript
复制
<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控制台之后,添加了一些更改。我希望它能像你想的那样工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16284170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档