使用jquery不传递value参数?

时间:2010-09-17 08:29:37

标签: javascript jquery html parameter-passing

<textarea name="inputField" id="inputField" tabindex="1" rows="2" cols="40"onblur="DoBlur(this);" onfocus="DoFocus(this);" ></textarea>
<input class="submitButton inact" name="submit" type="submit" value="update" disabled="disabled" />
<input name="status_id" type="hidden">

javascript(jquery):

function insertParamIntoField(anchor, param, field) {
       var query = anchor.search.substring(1, anchor.search.length).split('&');

       for(var i = 0, kv; i < query.length; i++) {
          kv = query[i].split('=', 2);
          if (kv[0] == param) {
             field.value = kv[1];
             return;
          }
       }
    }


$(function () {
    $("a.reply").click(function (e) {
       console.log("clicked");
       insertParamIntoField(this,"status_id",$("#status_id"));
       insertParamIntoField(this, "replyto", $("#inputField")[0]);


     $("#inputField").focus()

$("#inputField").val($("#inputField").val() + ' ');


     e.preventDefault();
       return false; // prevent default action
    });
});

没有传递status_id参数:

post.php?reply_to=@muna&status_id=345667

它总是给出零值,当它意味着给出345667

3 个答案:

答案 0 :(得分:0)

您在该字段上没有id,因此当您尝试使用$('#status_id')设置值时,它不会将值放在任何位置。

将ID添加到字段中:

<input name="status_id" id="status_id" type="hidden">

答案 1 :(得分:0)

为输入添加值

<input name="status_id" id="status_id" value="345667" type="hidden">

答案 2 :(得分:0)

你有两个问题,第一个@Guffa提到,你需要$("#status_id")的ID才能工作,如下:

<input id="status_id" name="status_id" type="hidden">

另一个在这里:

insertParamIntoField(this,"status_id",$("#status_id"));
insertParamIntoField(this, "replyto", $("#inputField")[0]);

请注意,那里没有[0],因此您在jQuery对象上设置.value,而不是元素本身。相反,你需要这个:

insertParamIntoField(this,"status_id",$("#status_id")[0]);
insertParamIntoField(this, "replyto", $("#inputField")[0]);

或者更改您的方法以使用.val(),如下所示:

field.val(kv[1]);

然后剥离[0]来电,这样他们只是

insertParamIntoField(this,"status_id",$("#status_id"));
insertParamIntoField(this, "replyto", $("#inputField"));