使用jQuery将post变量添加到表单中

时间:2013-09-19 00:01:55

标签: javascript jquery post local-storage

我有以下代码,默认情况下会将参数的值添加到我的表单中。这很好但如果你将表单设置为post,则它不再有效。设置此值的最佳方法是什么?

    var request = {};
    var pairs = location.search.substring(1).split('&');
        for (var i = 0; i < pairs.length; i++) {
            var pair = pairs[i].split('=');
            request[pair[0]] = pair[1];
        }

    var getfirstname = document.getElementById('firstname');

    var firstname = request['firstname'];

    getfirstname.setAttribute('value', firstname);


    <form method="get" action="search">
        <input type="text" name="firstname" id="firstname" />
        <input type="submit" alt="Go" value="Go" border="0" />
    </form>

        www.example.com?firstname=john

    <form method="get" action="search">
        <input type="text" name="firstname" id="firstname" value="John" />
        <input type="submit" alt="Go" value="Go" border="0" />
    </form>

3 个答案:

答案 0 :(得分:2)

您到目前为止所获得的答案可能无法正确解决您的问题。如果要从使用方法设置为“GET”提交的表单设置输入的值,则参数在查询字符串中可用并且可由浏览器访问 - 这就是为什么这样做的原因:

var pairs = location.search.substring(1).split('&');

但是当您将方法更改为“POST”时,浏览器(客户端)将无法再使用发布的数据。您需要在服务器端检索发布的数据。如果你使用PHP,你会做这样的事情(非常非常简化的版本):

<?php 
   $firstname = (isset($_POST['firstname'])) ? $_POST['firstname']:'NA';
 ?>

  <form method="get" action="search">
    <input type="text" name="firstname" id="firstname" value="<?php echo $firstname; ?>" />
    <input type="submit" alt="Go" value="Go" border="0" />
 </form>

希望有所帮助。如果你能解释一下你想要做什么,我可以通过jQuery选项添加一些东西来解决ajax。

答案 1 :(得分:1)

如果要设置字段的值,请设置value属性而不是value属性

getfirstname.value = firstname;

答案 2 :(得分:1)

设置实际的,而不是设置value属性:

getfirstname.val(firstname);