我有一个表单,我可以在javascript文件中动态创建一个组合。当组合框项目发生更改时,我想在组合下方显示一些帮助文本。
我正在创建组合(ID为WhereOperatorCombo
),如下所示,并添加了一个事件监听器。
$("#lot").append(
"<h5> Select an Operator </h5>"+
"<div class='col-md-12'>"+
"<select id='WhereOperatorCombo' name='WhereOperatorCombo' class='form-control'>"+
"<option value='Select an option'>Select an option</option>"+
"<optgroup label='--Comparison Operators--'>"+
"<option value='equal'>=</option>"+
"<option value='notequal'>!=</option>"+
"<option value='gt'>"+gt+"</option>"+
"<option value='lt'>"+lt+"</option>"+
"<option value='gte'>"+gte+"</option>"+
"<option value='lte'>"+lte+"</option>"+
"<option value='ngt'>"+ngt+"</option>"+
"<option value='nlt'>"+nlt+"</option>"
);
$("#WhereOperatorCombo").append(
"<optgroup><optgroup label='--Logical Operators--'>"
);
for (var k = 0; k < logicalOperatorListArray.length; k++)
{
$("#WhereOperatorCombo").append(
"<option value="+logicalOperatorListArray[k]+">"+logicalOperatorListArray[k]+"</option>"
);
}
$("#WhereOperatorCombo").append(
"</optgroup></select>" +
"<div id='onchangeDefinition' class='col-md-12'></div>"+
"</div>"
);
document.getElementById("WhereOperatorCombo").addEventListener("change", function() {
displayValueinput();
}, false);
displayValueinput()方法
function displayValueinput()
{
var myNode = document.getElementById("onchangeDefinition");
var fc = myNode.firstChild;
while( fc ) {
myNode.removeChild( fc );
fc = myNode.firstChild;
}
var choice=document.getElementById("WhereOperatorCombo");
var selectedOperator = choice.options[choice.selectedIndex].text;
if(selectedOperator == "=")
{
$("#onchangeDefinition").append(
"<h5> This operator filters the records that are equal the value that you provide</h5>"
);
}
else if(selectedOperator == "!=")
{
$("#onchangeDefinition").append(
"<h5> This operator filters the records that are NOT equal the value that you provide</h5>"
);
}
...
但我面临的问题是
onchangeDefinition
部门没有显示任何内容。
我尝试在if(selectedOperator == "!=")
决定中显示一个警报,只是为了检查它是否通过该阻止,我正在收到警报。但帮助文本没有按照我的意图附加到该部门。
这方面的任何建议都将受到高度赞赏。
答案 0 :(得分:6)
在onchangeDefinition
元素之外添加select
div。
$("#WhereOperatorCombo").closest('div').append()
尝试以下代码作为示例
$("#lot").append(
"<h5> Select an Operator </h5>" +
"<div class='col-md-12'>" +
"<select id='WhereOperatorCombo' name='WhereOperatorCombo' class='form-control'>" +
"<option value='Select an option'>Select an option</option>" +
"<optgroup label='--Comparison Operators--'>" +
"<option value='equal'>=</option>" +
"<option value='notequal'>!=</option>" +
"<option value='gt'>gt</option>" +
"<option value='lt'>lt </option>" +
"<option value='gte'>gte</option>" +
"<option value='lte'>lte </option>" +
"<option value='ngt'> ngt </option>" +
"<option value='nlt'>nlt</option>"
);
$("#WhereOperatorCombo").append(
"<optgroup><optgroup label='--Logical Operators--'>"
);
logicalOperatorListArray = [];
for (var k = 0; k < logicalOperatorListArray.length; k++) {
$("#WhereOperatorCombo").append(
"<option value=" + logicalOperatorListArray[k] + ">" + logicalOperatorListArray[k] + "</option>"
);
}
$("#WhereOperatorCombo").closest('div').append(
"</optgroup></select>" +
"<div id='onchangeDefinition' class='col-md-12'></div>" +
"</div>"
);
document.getElementById("WhereOperatorCombo").addEventListener("change", function() {
displayValueinput();
}, false);
function displayValueinput() {
var myNode = document.getElementById("onchangeDefinition");
var fc = myNode.firstChild;
while (fc) {
myNode.removeChild(fc);
fc = myNode.firstChild;
}
debugger;
var choice = document.getElementById("WhereOperatorCombo");
var selectedOperator = choice.options[choice.selectedIndex].text;
if (selectedOperator == "=") {
$("#onchangeDefinition").append(
"<h5> This operator filters the records that are equal the value that you provide</h5>"
);
} else if (selectedOperator == "!=") {
$("#onchangeDefinition").append(
"<h5> This operator filters the records that are NOT equal the value that you provide</h5>"
);
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<div id="lot"></div>
&#13;