Jquery不接受val()

时间:2012-07-26 18:22:34

标签: jquery

我对jQuery有一点问题 - 在jquery ui确认对话框中我有2个输入: 首先 - 隐藏精确值=“” 第二 - 输入文本 - 这是问题所在。

当我点击“确定”时,脚本只向我发送第一个值,第二个为空。但是当我写入值=“123”时,有两个正在发送。

HTML:

<input type="text" value="" class="MyIn" id="MyIn" name="MyIn" >
<input type="hidden" value="<?=$r['order_id'];?>" class="orderid" id="orderid" >

JavaScript的:

  $("a.opener").click(function (e) {
        $("#dialog-message").dialog({

            buttons: {
                Ok: function () {
                    var sendNumber = $("input#MyIn").val();
                    var orderid = $("input#orderid").val();

                    var dataString = 'orderid=' + orderid + '&sendNumber=' + sendNumber;

                    $.ajax({
                        type: "POST",
                        url: "moduls/send.php",
                        data: dataString,
                        success: function () {
                            $("#dialog-message").dialog("close");
                        }
                    });
                    return false;

                }
            }
        });
    });

3 个答案:

答案 0 :(得分:1)

它可能没什么区别,但是当通过AJAX发送数据时,包含DATATYPE是一种很好的做法,如下所示:

$.ajax({
  type: "POST",
  url: "moduls/send.php",
  data: dataString,
  dataType: 'text',
  success: function () {
    $("#dialog-message").dialog("close");
  }
});

答案 1 :(得分:1)

我非常怀疑<?=$r['order_id'];?>返回一个空字符串。如果是这种情况,则不会发送。另外dataString不是在jQuery中处理params的首选方法。贝娄对这种情况很感兴趣:

$("a.opener").click(function (e) {
    $("#dialog-message").dialog({

        buttons: {
            Ok: function () {

                // if sendNumber fails or evaluates to false, 
                // it will be replaced with 'null', insuring its sent anyway
                // and you can trap on the serverside.
                var sendNumber = $("input#MyIn").val() || 'null';
                var orderid = $("input#orderid").val();

                var postData = { orderid : orderid, sendNumber : sendNumber};

                //shorthand of extra niceness
                $.post('moduls/send.php', postData, function(){
                     $("#dialog-message").dialog("close");
                });
                return false;

            }
        }
    });
});

答案 2 :(得分:0)

您当前的jQuery代码应该正常工作,因为隐藏输入元素的值的有效值是有效的。

演示:http://jsfiddle.net/3qpV4/

尝试提醒值以确保正确设置。如果不是,那么您就知道问题出在PHP变量扩展中。如果它确实发出警报,则问题在于您的PHP文件send.php