表单提交时fname与lname字段传值为null,如何实现字符串正常传输?
表单提交姓名字段为null的修复方案
问题原因
提交后服务器收到[1234567890,0,null,null],核心问题出在前端处理提交数据的代码里:
var firstName = +parms.fname; var lastName = +parms.lname;
+运算符用于将值转为数字类型,但姓名是字符串,非数字字符串转数字会得到NaN,在socket传输时就变成了null。
修复步骤
直接去掉firstName和lastName变量前的+符号,保留原始字符串值即可:
var custnum = +parms.phone; var readyin = +parms.readytxt; // 去掉+,直接使用字符串值 var firstName = parms.fname; var lastName = parms.lname; var twilarray = [custnum, readyin, firstName, lastName]; io.emit('go', twilarray);
额外验证点
- 确认
parms对象确实正确获取了表单的fname和lname字段值,比如通过FormData解析表单数据时,要保证键名和表单的name属性完全一致(表单里是fname和lname)。 - 前端检查时已确认字段值正确,只要去掉强制转数字的操作,就能正常传输字符串类型的姓名数据。
内容的提问来源于stack exchange,提问作者user1751445
相关产品推荐
相关产品推荐

