【发布时间】:2021-07-11 01:20:58
【问题描述】:
感谢阅读。我是 Javscript 的新手,并且已经做了很多搜索来尝试解决这个问题......(无济于事)
我正在尝试创建一种用户在表单上输入单个单词的情况。然后,当他们单击提交按钮时,网站会从输入中获取单词,将其附加到不完整 URL 的末尾,然后将它们发送到完整的 URL。
很容易理解为什么这对你们中的一些人不起作用。而且,令人尴尬的是,我认为最好采用完全不同的方法。
感谢您的建议。
<form action="https://vrnaut.neocities.org/" method="get">
<label for="MyForm">Enter One Word:</label>
<input type="text" id= "OneWord" name="OneWord" required>
</form>
<button onclick="myFunction()">Submit</button>
<script>
function myFunction(form) {
var GoHere = form.OneWord.value;
location.replace("https://vrnaut.neocities.org/" + GoHere);
}
</script>
【问题讨论】:
-
你永远不会向
myFunction传递任何东西...但是传递给EventListener的唯一参数是EventObject,所以你会想要将该函数包装在另一个函数中并传入代表你的表单的参数.你可以像function myFunction(){ location = 'https://vrnaut.neocities.org'+document.getElementById('OneWord').value.trim(); }那样做。当然,如果你不想每次点击按钮时都解析 DOM,那么请事先获取 Node,将其分配给一个变量以供重用。 -
出于同样的原因,内联
style属性是错误的标记,内联on*JS 处理程序属性也是错误的。 CSS 和 JS 应该只在一个地方,那就是它们各自的文件或标签。请改用Element.addEventListener()。
标签: javascript html forms url