字符串切割,没思路..

https://img3.mukewang.com/5c1c57f400010ecf04900176.jpg

如图:
这是一个表格,里边有select,现在获取到了一个关于所有下拉菜单的值的字符串。
想把它们切成单独的数据存进数组,目前没有思路,求各位老哥给个思路= =

**

第一个问题:

**
获取到的字符串是:“年终汇算2005年核定征收预缴-月度2016年请选择查账征收预缴-季度2008年第四季度核定征收”。
也就是说,所有的select选择的值都连在一起了,我没有切开的思路了。
最后想弄成

[{type:"年终汇算",time1:"2005年",time2:"",fangs:"核定征收"},{type:"预缴-月度",time1:"2016年",time2:"2月",fangs:"查账征收"},{type:"预缴-季度",time1:"2008年",time2:"第四季度",fangs:"查账征收"}]

就是最后想存成这种样子。

**

第二个问题:

**

这其中选项,如果用户没选,就会显示“请选择”,请问如何才能判断不让这些值里出现“请选择”呢?(也就是说,不能不选就提交,要每个选项都选了,才能提交存储数据)。

PS:1.我的年度和月度季度的选项不一样的,上边是二级联动,下边月度季度是三级联动
2.我这个select是在table的trtd里写的,而这些,都是有个"添加"按钮动态生成的。

不好意思刚才忘记说这两点了,补充一波-.-


12345678_0001
浏览 489回答 1
1回答

湖上湖

下拉选择和取值思路以下为我的思路每个行实例都具有一个value对象,如:this.value = {};行内的&nbsp;select&nbsp;使用标准的数字值,用以比对数组下标,确保取值的准确;每个&nbsp;select&nbsp;的&nbsp;change&nbsp;事件都会修改一个对应的值,如:第一个&nbsp;select.type&nbsp;选中时,在联动代码之前添加&nbsp;this.value.type = $type[0].value&nbsp;—— 自行代入对应的变量;使用隐藏域来管理输出,如:<input type="hidden" name="name[]" />;你可以使用任意的数据格式,个人建议尽量使用数字,如:// 数组this.value = [1,1,1,0]; // 预缴-月度|2016年|1月|查账征收// 对象this.value = {&nbsp; &nbsp; type: 2, // 预缴-季度&nbsp; &nbsp; years: 1, // 2016年&nbsp; &nbsp; time: 3, // 第四季度&nbsp; &nbsp; fangs:1 // 核定征收};最后的&nbsp;select.fangs&nbsp;选择时会生成可用数据,以供表单使用,如:$fangs.on('change.app', $.proxy(function(e){&nbsp; &nbsp; // 添加值&nbsp; &nbsp; this.value.fangs = $fangs[0].value;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; // 生成表单值&nbsp; &nbsp; this.$output.val(JSON.stringify(this.value));}, this));关于验证扩展一个&nbsp;验证方法,如:AppRow.prototype.validate(),该方法根据&nbsp;this.value&nbsp;的内容监测表单的合法性,并返回一个布尔值,如:首先是否为空对象,是,则说明本行第一个&nbsp;select&nbsp;为&nbsp;请选择,返回&nbsp;false;如果选择了&nbsp;.type - 0 - 年度汇算(第一个&nbsp;select),则获取&nbsp;AppRow.typeChose[this.value.type]对象;对象不存在,说明可能是越界,如根本不存在&nbsp;AppRow.typeChose[4], 返回&nbsp;false;根据所选&nbsp;AppRow.typeChose[this.value.type].types&nbsp;得出&nbsp;typeSubLen&nbsp;当前类型对应的后面表单的数量,即当前类型应该有几个相关的子级;如果&nbsp;(this.value.length - 1) < typeSubLen&nbsp;说明长度不足,缺少参数,又或&nbsp;!this.value.time1&nbsp;不存在,返回&nbsp;false;this.value.time1&nbsp;存在,值&nbsp;=== -1&nbsp;或&nbsp;!AppRow.typeChose[0].types[this.value.time1],返回&nbsp;false;this.value.time2&nbsp;存在,值&nbsp;=== -1&nbsp;或&nbsp;!AppRow.typeChose[0].types[0].zType_time1[this.value.time1],返回&nbsp;false;!this.value.fangs&nbsp;或&nbsp;this.value.fangs === -1,返回&nbsp;false;条件都满足,返回&nbsp;true;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript