将文本附加到 HTML 表单操作搜索的结果,一个文本框,2 个按钮,2 个可能的结果,

Appending text to results of HTML form action search, one text box, 2 buttons, 2 possible results,

我使用来自 here 的@John Strood 的回答来构建我当前的脚本。下面的代码接近我的需要,我现在只需要在结果中附加文本。

例如,将site:imdb.com/title附加到Hakunamatata得到https://www.bing.com/search?q=site:imdb.com/title+Hakunamatata

对单次提交表单有很好的回答,但它似乎不适用于当前脚本。

<form action="" method="get">
    <input type="text" value="Hakunamatata"  id="box" name="search_query"placeholder="text" autofocus />

    <input type="submit" value="BNG" formaction="https://testurl1.com"
        onclick="document.getElementById('box').name='q'" />

    <input type="submit" value="ABB" formaction="http://testurl2.com"
        onclick="document.getElementById('box').name='s'" />
</form>

如果您想知道,onclick 函数是必需的
testurl1 使用 ?q 的搜索修饰符,testurl2 使用 ?s

触发 submit 事件时将字符串添加到输入的值中。

form.addEventListener('submit', function() {
  box.value = 'site:imdb.com/title ' + box.value;
})
<form action="" method="get" id="form">
  <input type="text" value="Hakunamatata" id="box" name="search_query" placeholder="text" autofocus />

  <input type="submit" value="BNG" formaction="http://www.bing.com/search" onclick="document.getElementById('box').name='q'" />

  <input type="submit" value="ABB" formaction="http://www.bing.com/search" onclick="document.getElementById('box').name='s'" />
</form>

要有条件地前置字符串,请将逻辑移至按钮的 click 事件侦听器。

<form action="" method="get" id="form">
  <input type="text" value="Hakunamatata" id="box" name="search_query" placeholder="text" autofocus />

  <input type="submit" value="BNG" formaction="http://www.bing.com/search" onclick="document.getElementById('box').name='q';box.value = 'site:imdb.com/title ' + box.value;" />

  <input type="submit" value="ABB" formaction="http://www.bing.com/search" onclick="document.getElementById('box').name='s'" />
</form>