Javascript String Var + jQuery Textbox Val

时间:2011-05-02 15:03:47

标签: javascript ajax jquery

任何人都知道为什么以下代码似乎不起作用?我正在尝试将文本框中的任何内容附加到URL字符串。

$.ajax({
    type: 'POST',
    url: 'http://myurl.com/something.php?myname='+$('#myname').val(),
    success: function(point) {
        var series = chart.series[0],
        shift = series.data.length > 20;
        chart.series[0].addPoint(point[0], true, shift);
            chart.series[1].addPoint(point[1], true, shift);
            setTimeout(requestData, 5000);  
         },
         cache: false
     });

3 个答案:

答案 0 :(得分:3)

你没告诉我们什么不起作用。如果你真的有一个$('#myname').val()对象,myname应该可以正常工作。

但是,我无法注意到您是通过POST请求,但同时您正在构建查询字符串。尝试将类型更改为GET并查看其进展情况。

答案 1 :(得分:1)

元素的值可能包含可以改变查询字符串含义的字符,例如如果值以&asdf开头,则网址变为http://myurl.com/something.php?myname=&asdf。如果是这样,试试这个:

$.ajax({
     type: 'POST',
     url: 'http://myurl.com/something.php?myname=' + encodeURIComponent($('#myname').val()), // pass via GET
     // I assume there is no data to pass -- uncomment otherwise
     // data: {
     //     name1: value1,
     //     name2: value2,
     // },
     success:
     .
     .
     .

答案 2 :(得分:0)

我建议使用变量而不是像这样内联:

<script type="text/javascript>
$(document).ready(function(){
    var name = $("#myname").val();
    //any validation would occur here
    var posturl = "http://myurl.com/something.php?myname" + name;

    $.ajax({
      type: 'POST',
      url: posturl,
      data: data,
      success: success
      dataType: dataType
    });

});
</script>
<body>
    <input id="myname" value="John Doe" />
</body>