根据文本输入修改表单操作

时间:2012-06-14 13:24:23

标签: jquery forms action

我想修改元素的action属性以包含在字段中输入的任何文本。这是我正在尝试做的一个例子,但不能:

<form action="/search/?searchoption=Audio&s=Blocks--[text input here]" method="post" name="audio-search-form">
    <input name="audiosearch" type="text" size="30" id="audiosearch">
    <input type="submit" name="audio-search-submit" value="Search Audio">
</form>

由于

4 个答案:

答案 0 :(得分:0)

使用可以使用

更改表单操作
 // Get input value
 input = $("#textboxId").val()

 // Change form action
 $("#formid").attr("action", "/requiredString/" + input);

答案 1 :(得分:0)

var $form = $('form');
$form.attr('action', $form.find('input[type="text"]').val());

或者你想要极端 ......:

$('form').attr('action', function(index, old) {
    return old + $(this).find('#audiosearch').val();
});​

答案 2 :(得分:0)

如果您的示例表单完全存在,为什么不将表单方法设为GET请求呢?

<form action="/search/" method="get" name="audio-search-form">
    <input name="searchoption" type="hidden" value="Audio">
    <input name="s" type="text" size="30" id="audiosearch">
    <input type="submit" name="audio-search-submit" value="Search Audio">
</form>

编辑:唉!抱歉,我忽略了您要添加的Blocks--部分。我仍然会留在这里作为参考,因为这可能对你有用。 (如果Blocks--始终保持不变,您也可以将其添加为单独的隐藏字段,或者完全抛弃它并将其添加到后端。)

编辑2:澄清,以下结果搜索网址是否有问题:

/search/?searchoption=Audio&type=Block--&s=whatever+the+search+input

可以通过以下方式实现:

<form action="/search/" method="get" name="audio-search-form">
    <input name="searchoption" type="hidden" value="Audio">
    <input name="type" type="hidden" value="Block--">
    <input name="s" type="text" size="30" id="audiosearch">
    <input type="submit" name="audio-search-submit" value="Search Audio">
</form>

答案 3 :(得分:0)

var initial = $("form").attr("action");
$("input[name=audiosearch]").bind("keyup",function(){
    $("form").attr("action",initial+$(this).val());
})​