我已将默认值设置为输入框并将其设置为只读。 我也禁用了一些选择选项。 它正在工作,但当我为另一个产品添加另一个ID时,只有一个ID可用。
请注意,我无法访问实际的html页面。我只能访问js文件。
我需要的是: 如果我转到产品1或产品2,我会看到文本框在readonly中设置为28,并且周/月被禁用。
以下是我的示例HTML。 下面的HTML是两个不同的HTML页面。
产品1的HTML
<p>Deliver products every <input type="text" id="thisInput_prod1"></p>
<select id="thisSelect_prod1">
<option value="Days" selected>Days</option>
<option value="Weeks">Weeks</option>
<option value="Month">Month</option>
</select>
产品2的HTML
<p>Deliver products every <input type="text" id="thisInput_prod2"></p>
<select id="thisSelect_prod2">
<option value="Days" selected>Days</option>
<option value="Weeks">Weeks</option>
<option value="Month">Month</option>
</select>
这是.js文件
window.onload = SetDefaultValue;
function SetDefaultValue() {
document.getElementById('thisInput_prod1').setAttribute('value','28');
document.getElementById('thisInput_prod1').readOnly = true;
var x = document.getElementById('thisSelect_prod1');
x.options[1].disabled=true;
x.options[2].disabled=true;
//below is to set the other product - I disable because its not working
//document.getElementById('thisInput_prod2').setAttribute('value','28');
//document.getElementById('thisInput_prod2').readOnly = true;
//var y = document.getElementById('thisSelect_prod2');
//y.options[1].disabled=true;
//y.options[2].disabled=true;
}
答案 0 :(得分:0)
当没有thisInput_prod2
元素时,document.getElementById('thisInput_prod2')
将评估为null
,然后代码将中止尝试在该空值上调用.setAttribute
。您应该将其分配给变量并在解除引用之前测试它是否为=== null
。
答案 1 :(得分:0)
以下是您的工作示例:Fiddle
document.getElementById('thisInput_prod1').value = '28';
document.getElementById('thisInput_prod1').readOnly = true;
var x = document.getElementById('thisSelect_prod1');
x.options[1].disabled = true;
x.options[2].disabled = true;
document.getElementById('thisInput_prod2').readOnly = true;
var y = document.getElementById('thisSelect_prod2');
y.options[1].disabled=true;
y.options[2].disabled=true;