使用javascript将默认值设置为多个产品ID

时间:2014-08-26 07:13:31

标签: javascript

我已将默认值设置为输入框并将其设置为只读。 我也禁用了一些选择选项。 它正在工作,但当我为另一个产品添加另一个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;
} 

2 个答案:

答案 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;