将下拉框选中值追加到URL时返回对象而非数值如何解决?
问题原因
var Adult = $("#adult")获取到的是jQuery封装的下拉框DOM元素对象,而非下拉框的选中值。直接将对象拼接进字符串时,JS会自动调用对象的toString()方法做类型转换,最终输出object%...这类非预期的编码结果。
修复方案
- 基础修复:调用jQuery对象的
.val()方法直接获取选中项的value属性值var Adult = $("#adult").val(); - 鲁棒性优化:增加类型转换和默认值容错,避免空值、异常值导致后续逻辑出错
// 转换为十进制数字,解析失败时默认返回0,匹配下拉框的value取值规则 var Adult = parseInt($("#adult").val(), 10) || 0;
额外优化建议
拼接URL参数时,建议用encodeURIComponent()包裹参数值,避免特殊字符导致URL解析错误,修改后的拼接代码示例:
url = url + "RedirectFromOutSide.aspx?arrivaldate=" + stringdata($("#StartDate").datepicker('getDate')) + "&departuredate=" + stringdata($("#EndDate").datepicker('getDate')) + "&hotelid=" + HotelID + "&Type=" + type + "&lang=" + Culture + "&adults=" + encodeURIComponent(Adult);
内容的提问来源于stack exchange,提问作者Kenneth Camilleri
相关产品推荐
相关产品推荐

