Javascript字符串Var + jQuery文本框Val

Javascript String Var + jQuery Textbox Val

本文关键字:文本 Val jQuery 字符串 Var Javascript      更新时间:2023-09-26

谁知道为什么下面的代码似乎不工作?我正在尝试将文本框中的内容附加到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
     });

你没有让我们知道什么是不工作。如果你真的有一个myname对象,$('#myname').val()应该可以工作。

然而,我不禁注意到你正在通过POST请求,但同时你正在构建一个查询字符串。尝试将类型更改为GET,看看效果如何

元素的值可能包含可以改变查询字符串含义的字符,例如,如果值以&asdf开头,则url变为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:
     .
     .
     .

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

<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>