angular 同一个form中怎么获取到input[radio]和input[checked]的值?类似问卷功能

一个类似问卷调查的功能需求:在同一个表单中有单选和多选,在post提交的时候怎么同时获取单选和多选的ng-model值(注:单选与多选的出现先后顺序不固定),而提交的时候的参数设置必须是{题号1,答案;题号2,答案1,答案2}类似这种结构。现在只能单独获取到单选的值和多选的值,代码如下:

<form>
    <ul>
    <li ng-repeat="item in ques.ques_items">        
      <div class="opt" ng-repeat="nums in item.ques_item_options track by nums.ques_item_option_id">
           <!-- 单选 -->
            <input type="radio"
				class="magic-radio " 
				name="{{nums.ques_item_option}}" 
				value="{{item.ques_item_id}},{{nums.ques_item_option_id}}" 
				id="{{nums.ques_item_option_id}}" 
				title="{{nums.ques_item_option}}" 
				ng-model="formdata.option_id" 
				ng-if="item.ques_item_type==1" ng-required="required"
			/>
            <!-- 多选 -->
            <input class="magic-checkbox" 
				type="checkbox" 
				name="{{nums.ques_item_option}}" 
				id="{{nums.ques_item_option_id}}" 
				ng-model="formdata.ques_item_option_id"  
				ng-true-value="'{{item.ques_item_id}},{{nums.ques_item_option_id}}'"
				ng-false-value="'NO'" 
				ng-checked="formdata.selected"  
				ng-disabled="datas.ques_item_is_voted==1" 
				ng-if="item.ques_item_type==2" 
				ng-checked="nums.selected"
				ng-required="required"
			/>
            <label for="{{nums.ques_item_option_id}}">
               <p class="right">
                  <i ng-bind="nums.ques_item_option_id">A</i>
                  <i ng-bind="nums.ques_item_option">男</i>
               </p>
            </label>
        </div>
     </li>
    <div class="submit"><span>提交</span></div>
  </ul>
</form>

怎么在post提交的时候获取到单选和多选框的值?现在有尝试过新建一个$scope.formdata={},然后在ng-model中分别使用formdata.ques_item_option_id 和formdata.option_id 疑问如下:

1、多选框只能选择一个了,不知道什么原因;

2、因为服务端要求上传的参数格式是

每道题以分号隔开,每首题答案以逗号隔开(第一个是选项id,紧接着是选项id)

如2,2;3,4,5 则表示 问题(id=2)选择了选项(id=2)【单选题】,问题(id=3)选择了选项(id=2和id=3)【多选题】

请问有什么方式实现?找了很多文档,但是没有发现可行方案,求救啊,各位路过的大神


四年-Dream-ACT
浏览 1826回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP