js传值问题

-一个大坑 2018-01-19 12:13:58

function CheckNumber(number) {
var str = number.value.length;
if (str >= '8') {
$.ajax({
type: "post",
url: "RQ16.aspx/Getstr",
data: "{ 'cardid': number.value }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (data.d == 'NO') {
alert("查不到該卡信息!!");
} else {
alert(data.d)
}
},
error: function (err) {
alert(err.d);
}
});

}
}

这样写报错,提示undefined
data: "{ 'cardid': 'number.value' }",
这样传值我就取不到文本框的值了
...全文
483 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
-一个大坑 2018-01-20
  • 打赏
  • 举报
回复
引用 13 楼 xueyuxiongshi 的回复:
不知道你这是在前台还是后台报错 你要在你的后台将要返回到前台的数组转换成json然后再返回到前台
前端,我直接赋值然后alert就报错
百云技术老邓 2018-01-20
  • 打赏
  • 举报
回复
原谅帽派送员 2018-01-20
  • 打赏
  • 举报
回复
你后台返回的json如果是 "people":[{"CNAME":"张三","SEX":"男"}] 用 data.people[0].CNAME 和 data.people[0].SEX 获取
xueyuxiongshi 2018-01-19
  • 打赏
  • 举报
回复
引用 12 楼 happy4944 的回复:
[quote=引用 10 楼 xueyuxiongshi 的回复:] [quote=引用 9 楼 happy4944 的回复:] [quote=引用 8 楼 xueyuxiongshi 的回复:] 如果是你在js里面获取到的值没问题的话(number.value的值包括0XXXXXXX),就尝试一下将上面前台的第7行代码改成:
 data: "{ 'cardid': '"+number.value+"' }",
试一下
现在可以了,前端解析json怎么写? 我后台返回的[{"CNAME":"张三","SEX":"男"}] 我现在的做法是后台JsonString = JsonString.TrimStart('[').TrimEnd(']');去掉[] 然后前端这样处理。如果直接前端,怎么处理? var jsonObj = eval('(' + data.d + ')'); $("#Text_Name").val(jsonObj.CNAME); $("#Drop_Sex").val(jsonObj.SEX); [/quote] 后台不用处理直接到前台的话看你的形式应该是数组 直接

var str = "[{"CNAME":"张三","SEX":"男"}]";
var arr = eval("("+str+")");
var jsonObj = arr[0];                       //这样就取出来里面包含的对象了
[/quote] 不行,有[]就报错 錯誤: 必須要有 ']'[/quote] 不知道你这是在前台还是后台报错 你要在你的后台将要返回到前台的数组转换成json然后再返回到前台
-一个大坑 2018-01-19
  • 打赏
  • 举报
回复
引用 10 楼 xueyuxiongshi 的回复:
[quote=引用 9 楼 happy4944 的回复:] [quote=引用 8 楼 xueyuxiongshi 的回复:] 如果是你在js里面获取到的值没问题的话(number.value的值包括0XXXXXXX),就尝试一下将上面前台的第7行代码改成:
 data: "{ 'cardid': '"+number.value+"' }",
试一下
现在可以了,前端解析json怎么写? 我后台返回的[{"CNAME":"张三","SEX":"男"}] 我现在的做法是后台JsonString = JsonString.TrimStart('[').TrimEnd(']');去掉[] 然后前端这样处理。如果直接前端,怎么处理? var jsonObj = eval('(' + data.d + ')'); $("#Text_Name").val(jsonObj.CNAME); $("#Drop_Sex").val(jsonObj.SEX); [/quote] 后台不用处理直接到前台的话看你的形式应该是数组 直接

var str = "[{"CNAME":"张三","SEX":"男"}]";
var arr = eval("("+str+")");
var jsonObj = arr[0];                       //这样就取出来里面包含的对象了
[/quote] 不行,有[]就报错 錯誤: 必須要有 ']'
天际的海浪 2018-01-19
  • 打赏
  • 举报
回复
引用 9 楼 happy4944 的回复:
[quote=引用 8 楼 xueyuxiongshi 的回复:] 如果是你在js里面获取到的值没问题的话(number.value的值包括0XXXXXXX),就尝试一下将上面前台的第7行代码改成:
 data: "{ 'cardid': '"+number.value+"' }",
试一下
现在可以了,前端解析json怎么写? 我后台返回的[{"CNAME":"张三","SEX":"男"}] 我现在的做法是后台JsonString = JsonString.TrimStart('[').TrimEnd(']');去掉[] 然后前端这样处理。如果直接前端,怎么处理? var jsonObj = eval('(' + data.d + ')'); $("#Text_Name").val(jsonObj.CNAME); $("#Drop_Sex").val(jsonObj.SEX); [/quote] 后台返回 [{"CNAME":"张三","SEX":"男"}] 就可以 前端用 data[0].CNAME 和 data[0].SEX 获取
xueyuxiongshi 2018-01-19
  • 打赏
  • 举报
回复
引用 9 楼 happy4944 的回复:
[quote=引用 8 楼 xueyuxiongshi 的回复:] 如果是你在js里面获取到的值没问题的话(number.value的值包括0XXXXXXX),就尝试一下将上面前台的第7行代码改成:
 data: "{ 'cardid': '"+number.value+"' }",
试一下
现在可以了,前端解析json怎么写? 我后台返回的[{"CNAME":"张三","SEX":"男"}] 我现在的做法是后台JsonString = JsonString.TrimStart('[').TrimEnd(']');去掉[] 然后前端这样处理。如果直接前端,怎么处理? var jsonObj = eval('(' + data.d + ')'); $("#Text_Name").val(jsonObj.CNAME); $("#Drop_Sex").val(jsonObj.SEX); [/quote] 后台不用处理直接到前台的话看你的形式应该是数组 直接

var str = "[{"CNAME":"张三","SEX":"男"}]";
var arr = eval("("+str+")");
var jsonObj = arr[0];                       //这样就取出来里面包含的对象了
-一个大坑 2018-01-19
  • 打赏
  • 举报
回复
引用 8 楼 xueyuxiongshi 的回复:
如果是你在js里面获取到的值没问题的话(number.value的值包括0XXXXXXX),就尝试一下将上面前台的第7行代码改成:
 data: "{ 'cardid': '"+number.value+"' }",
试一下
现在可以了,前端解析json怎么写? 我后台返回的[{"CNAME":"张三","SEX":"男"}] 我现在的做法是后台JsonString = JsonString.TrimStart('[').TrimEnd(']');去掉[] 然后前端这样处理。如果直接前端,怎么处理? var jsonObj = eval('(' + data.d + ')'); $("#Text_Name").val(jsonObj.CNAME); $("#Drop_Sex").val(jsonObj.SEX);
xueyuxiongshi 2018-01-19
  • 打赏
  • 举报
回复
如果是你在js里面获取到的值没问题的话(number.value的值包括0XXXXXXX),就尝试一下将上面前台的第7行代码改成:
 data: "{ 'cardid': '"+number.value+"' }",
试一下
xueyuxiongshi 2018-01-19
  • 打赏
  • 举报
回复
引用 6 楼 happy4944 的回复:
[quote=引用 4 楼 xueyuxiongshi 的回复:] 你这样是按字符串传到后台的,第7行的代码改成这样:data: "{ 'cardid': "+number.value+" }", 就OK了
如果是0开头的,会去掉0,卡号是string类型的,2010年前来的是0X开头的

<asp:TextBox ID="Text_Cardid" runat="server" Width="150px" onkeyup="javascript:CheckNumber(this)"></asp:TextBox>

[WebMethod]
    public static string Getstr(string cardid)
    {
        DataTable dt = GetNewDLTable(cardid.Trim());
        if (dt.Rows.Count > 0) 
        {
            return dt.Rows[0]["name"].toString();
        }
        return "NO";
    }
[/quote] 不好意思,我没学过asp,但是建议你看看CheckNumber(this)方法里面是不是把TextBox中的值改成了数字还是怎么的
-一个大坑 2018-01-19
  • 打赏
  • 举报
回复
引用 4 楼 xueyuxiongshi 的回复:
你这样是按字符串传到后台的,第7行的代码改成这样:data: "{ 'cardid': "+number.value+" }", 就OK了
如果是0开头的,会去掉0,卡号是string类型的,2010年前来的是0X开头的

<asp:TextBox ID="Text_Cardid" runat="server" Width="150px" onkeyup="javascript:CheckNumber(this)"></asp:TextBox>

[WebMethod]
    public static string Getstr(string cardid)
    {
        DataTable dt = GetNewDLTable(cardid.Trim());
        if (dt.Rows.Count > 0) 
        {
            return dt.Rows[0]["name"].toString();
        }
        return "NO";
    }
-一个大坑 2018-01-19
  • 打赏
  • 举报
回复
引用 3 楼 usecf 的回复:
data: "{ 'cardid': number.value }", 改成 data: { 'cardid': number.value },
楼下的成功了,我用的jsjq都是网上搜的好多看着差不多就是没效果

 $.ajax({
                            type: 'Post',
                            cache: false,
                            url: '/SCBD0107/DeleteDataBySpecialroleNo',
                            data: { emplID: arrEmplid, special_type: arrSpecial_type },
                            success: function (data) {
                                if (data == "OK") {
                                    toastr.success("刪除成功!");
                                    $("#specialroleInfo").bootstrapTable('refresh');
                                } else {
                                    toastr.warning(data);
                                }
                            },
                            error: function (xhr) {
                                toastr.error("請求時發生錯誤:" + xhr.status);
                            }
                        });
这个就可以,但是我的0#发的{}就报错,“{}”这样才行
xueyuxiongshi 2018-01-19
  • 打赏
  • 举报
回复
你这样是按字符串传到后台的,第7行的代码改成这样:data: "{ 'cardid': "+number.value+" }", 就OK了
usecf 2018-01-19
  • 打赏
  • 举报
回复
data: "{ 'cardid': number.value }", 改成 data: { 'cardid': number.value },
-一个大坑 2018-01-19
  • 打赏
  • 举报
回复
引用 1 楼 u011824309 的回复:
首先要弄明白一些事情,第一个,传进来的number是啥来的,单纯的数字还是一个对象?如果是数字,那number.value就是一个undefined了吧,更不会有length了,然后,ajax返回的数据格式是啥,是data: "{ 'cardid': 'number.value' }",?如果是这样的,那data也没有d属性呀,
number是文本框的值,字符串 后台返回的是string类型的值,接收的data是object类型,我才加的data.d
IMyxuan 2018-01-19
  • 打赏
  • 举报
回复
首先要弄明白一些事情,第一个,传进来的number是啥来的,单纯的数字还是一个对象?如果是数字,那number.value就是一个undefined了吧,更不会有length了,然后,ajax返回的数据格式是啥,是data: "{ 'cardid': 'number.value' }",?如果是这样的,那data也没有d属性呀,

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧