天天看点

layer弹出窗体及子→父窗体,父→子窗体表单属性传值的问题

首先引入layer.js以及layer.css样式等文件:

下面我直接贴代码:(*****下述子窗体也就是弹出窗体)

function parentSave(){
           var $singleSelect=$(".singleSelect").val();//单选分值
      	   var $mulSelect=$(".mulSelect").val();//多选分值
      	   var $judge=$(".judge").val();//判断分值
      	   var $subjective=$(".subjective").val();//主观分值
			layer.open({
				type:2,
				title:"新增",//false为无标题,可以设置标题title:"content"
				maxmin:false,
				shadeClose:true,
				area:['1200px','800px'],
				btn:['确定','取消'],
				content:"${ctx}/examination/curriculumExaminationInfo/changePage?singleSelect="+$singleSelect+"&mulSelect="+$mulSelect+"&judge="+$judge+"&subjective="+$subjective+"",
				yes:function(index,layero){//确认按钮的回调函数  该回调携带两个参数,分别为当前层索引、当前层DOM对象
                    addRow('#curriculumExaminationQuestionsList', curriculumExaminationQuestionsRowIdx, curriculumExaminationQuestionsTpl);curriculumExaminationQuestionsRowIdx = curriculumExaminationQuestionsRowIdx + 1;
                    //var datas=layero.find("iframe")[0].contentWindow.$("#inputForm").serialize();//获取弹出窗体表单数据
                    var body = layer.getChildFrame('body', index); //得到iframe页的body内容
                    var qtype = body.find("#questionsType").val();
                    var qscore=body.find("#questionsScore").val();
                    var contentTypes=body.find("#questType").val();
                    var answerA=body.find("#answerA").val();
                    layer.close(index);

				}
			});
        }

           

其中父窗体向子窗体传值:

content:"${ctx}/examination/curriculumExaminationInfo/changePage?singleSelect="+$singleSelect+"&mulSelect="+$mulSelect+"&judge="+$judge+"&subjective="+$subjective+""
           

其中子窗体向父窗体传值:

//获取子窗体表单数据:
var datas=layero.find("iframe")[0].contentWindow.$("#inputForm").serialize();
//获取子窗体body元素:
var body = layer.getChildFrame('body', index); 
//获取子窗体form表单中input元素:
 var qtype = body.find("#questionsType").val();
           

*********************************下面说一个在select下拉列表中遇到的坑:*********************************

动态对下拉列表赋值:

例子:

$("#questionsType").val(qtype);是不正确的;

采用下面这种方式才能正确赋值:

$("#questionsType").find(“option[value=”+qtype+"]").attr(“selected”,true);

其中qtype是一个变量

还有注意一点:

layer弹出窗体及子→父窗体,父→子窗体表单属性传值的问题

如果想对下拉列表不想让别人修改(最好不要在其元素上写死disabled属性),除了第一种方式:

第一种:禁用

$('#id').attr("disabled",true); 
  $('#id').attr("disabled","disabled"); 
           

对应的移除disabled方法:

//三种方法移除disabled属性 
    $('#id').attr("disabled",false); 
    $('#id').removeAttr("disabled"); 
    $('#id').attr("disabled",""); 
           

第二种,就是如上图这种效果,这种方法可以使下拉框和平常没有区别,看起来没有任何不同。唯一不同的就是下拉并单并选择之后,选了和没有选一样的。

例如:

<select style="width:195px" name="role" id="role" onfocus="this.defaultIndex=this.selectedIndex;"
onchange="this.selectedIndex=this.defaultIndex;">
           

继续阅读