我有一些创建2个数组的Javascript代码:一个用于产品类别,另一个用于产品。
但在用户选择产品类别或产品之前,他们必须选择他们希望使用的广告系列类型。因此,“广告系列”的选择(事件)会触发隐藏的下拉菜单,从中可以选择产品类别。选择“产品类别”后,“产品”下拉列表将填充,并允许用户从相应的选项中进行选择。
我唯一的问题:产品类别无法正确填充。选项是不可见的,但是一旦我选择了一个 - 产品选项下拉列表会相应地填充。我非常困惑....
这是JScript代码:
<script type="text/javascript">
var info = new Array(
"Select One*Select One|Select One",
"Mortgage*1yr NegAm|3yr ARM|5yr ARM|7yr ARM|15yr FRM|30yr FRM",
"Home Equity*HELoan|HELOC|Convertible",
"Credit Card*Standard|Premium|Charge|Limited|Secured|Pre-Paid|Business",
"Student Loan*Subsidized|Unsubsidized|Undergrad|Graduate|Refi",
"Auto Loan*Purchase|Lease|Used|Dealer"
);
function stringSplit ( string, delimiter ) {
if ( string == null || string == "" ) {
return null;
} else if ( string.split != null ) {
return string.split ( delimiter );
}
}
var menu1 = new Array();
var menu2 = new Array();
function createMenus() {
for ( var i=0; i < info.length; i++ ) {
menu1[i] = stringSplit ( info[i], '*' );
menu2[i] = stringSplit ( menu1[i][1], '|' );
}
var b = document.selector.dropnum.options[document.selector.dropnum.options.selectedIndex].value;
var myFormx = myForm + b;
var prodcat = document.myFormx.main;
var product = document.myFormx.title;
prodcat.length = menu1.length;
product.length = menu2[0].length;
for ( var i=0; i < menu1.length; i++ ) {
prodcat.options[i].value = menu1[i][0];
prodcat.options[i].text = menu1[i][0];
}
document.myFormx.main.selected = 0;
for (var x=0; x < menu2[0].length; x++) {
product.options[x].text = menu2[0][x];
product.options[x].value = menu2[0][x];
}
document.myFormx.title.selected = 0;
}
function updateMenus ( what ) {
var sel = what.selectedIndex;
if ( sel >= 0 && sel < menu1.length )
var temp = menu2[sel];
else
var temp = new Array ();
what.form.title.length = temp.length;
for ( var i = 0; i < temp.length; i++ ) {
what.form.title.options[i].text = temp[i];
what.form.title.options[i].value = temp[i];
}
what.form.title.selected=0;
}
</script>
以下是我的.php文件中的代码:
<html>
<body onLoad="createMenus()">
<br>
<br>
<form name="selector" action="#" method="post"> <!-- This is where you add a link to the 'Dials' tab -->
Select the Campaign methodology to model:
<select id='campnum' name='dropnum' class='css_button_example' onChange="javascript: ShowMenu(document.getElementById('campnum').value, 'camp', 5);">
<option value='0'>Select Campaign
<option value='1'>Retention Campaign
<option value='2'>Acquisition Campaign
<option value='3'>Cross-Sell Campaign
<option value='4'>Up-Sell Campaign
</select>
</form>
<div name="newboxes" id="camp0" style="display: none;" href="javascript:showonlyone('camp0');">
</div>
<!--*************************************************Retention Campaign************************************************-->
<div name="newboxes1" id="camp1" style="display: none;" href="javascript:showonlyone('camp1');">
<form name="myForm1"><p>
Product Category:
<select name="main" size=1 onChange="updateMenus(this)">
<option>
<option>
<option>
</select>
Product:
<select name="title" size=1>
<option>
<option>
<option>
</select>
</form>
</div>
</body>
</html>
此致
维杰
答案 0 :(得分:2)
“href”属性没有意义:
<div href="javascript:showonlyone
并且onChange="javascript:..."
是错误的 - onchange的值应该只是JS代码,没有“javascript:”前缀。
ShowMenu定义在哪里?