Javascript设置变量为输入,然后导航到页面



我有一个输入,理论上,用户在一个框中输入,按回车键,浏览器导航到末尾附加了.html的输入文本。我本来是想处理提交表格的问题,但是我添加了preventDefault();后表格就不再提交了。我现在所拥有的似乎没有将变量设置为表单元素,然后没有到达URL部分。我的代码:

<form name="answerarea">
<input type="text" name="input">
</form>
然后

function sendanswer( e ) {
if ( e.keyCode === 13 ) {
    e.preventDefault();
    var answer = this.document.answerarea.input.value;
    if (answer) { this.location.href = answer + ".html"; }
    }       
}
document.answerarea.input.onkeypress = sendanswer;

知道为什么不工作吗?谢谢。

this关键字很可能指向当前元素,即输入字段。

function sendanswer( e ) {
    if ( e.keyCode === 13 ) {
        e.preventDefault();
        var answer = this.value;   
        if (answer) { 
            window.href = answer + ".html";
            return false;
        }
    }       
}
document.getElementsByTagName('input')[0].addEventListener("keyup", sendanswer);

上下文将根据sendanswer被调用的方式而改变。例如:使用.apply.call将允许您更改上下文。

您正在调用输入的keypress事件上的函数,因此this将引用输入,其中没有inputlocation对象。

修改代码如下:

function sendanswer( e ) {
 if ( e.keyCode === 13 ) {
 e.preventDefault();
 var answer = document.answerarea.input.value;
 if (answer) { window.location.href = answer + ".html"; }
 }       
}

相关内容

  • 没有找到相关文章

最新更新