如何使用Javascript在点击提交时传递用户在表单操作中输入的URL

时间:2012-11-29 11:58:52

标签: javascript

<body>
    <form name="testarea" method="post" action="?URL">
        <input type="text" id="test1" name="URL"/>
        <input type="submit" value="Submit"/>
    </form>
</body>

现在我想:

  1. 在URL的文本框中使用用户输入的值
  2. 点击action=''传递给Submit表单。传递提交时需要相同的URL将在同一个iFrame中启动URL。

3 个答案:

答案 0 :(得分:1)

您可以使用jQuery设置表单的action属性,如下所示:

var url = $("#test1").val();
$(form).attr("action", url)

如果您无法使用jquery,可以参考以下帖子:

http://netfactory.dk/2007/09/28/changing-a-form-submit-url-with-javascript/

答案 1 :(得分:0)

您可以使用方法Get而不是Post

<body>
<form name ="testarea" Method="Get" Action="youpage.html">
<input type='text' id='test1' name='URL'/>
<input type='submit' value='Submit'/>
</form>

更新:

我不知道这是正确的,但你也可以这样尝试

<input type='text' id='test1' name=''/>
<input type='button' value='Submit' onclick="window.location.href=window.location+'?'+document.getElementById('test1').value;"/>

答案 2 :(得分:0)

将以下代码段放在表单之后

function addListener(element, eventName, handler) {
    if (element.addEventListener) {
        element.addEventListener(eventName, handler, false);
    }
    else if (element.attachEvent) {
        element.attachEvent('on' + eventName, handler);
    }
    else {
        element['on' + eventName] = handler;
    }
}

var form = document.forms['testarea'];
var input = document.getElementById('test1');

addListener(form, 'submit', function () {
   var url = input.value;
   form.setAttribute('action', url);
});

我没有测试过,但应该可以使用。我建议你使用像jquery这样的库,而不是编写纯javascript。你可以让生活更轻松,减少交叉浏览器问题。

在jQuery中,您的代码看起来像这样:

​$('form[name="testarea"]').on('submit', function () {
    var url = $('#test1').val();
    $(this).attr('action', url);    
});​​​​​​​​​​​​​​​​​​​​​​