在下面的脚本中,我添加了or
运算符来检查条件,比如如果是"ALL TCP"或"ALL UDP"项,则必须禁用,请建议我修改代码。
<script type="text/javascript">
function chgJob(pThis, pRow)
{
if ((pThis.value != 'All TCP') || (pThis.value != 'All UDP'))
{
$x_disableItem('f02_' + pRow, false);
}
else
{
$x_disableItem('f02_' + pRow, true);
}
}
</script>
字符串永远不可能同时等于'All TCP'
和'All UDP'
,因此条件始终为true。
您希望使用&&
运算符而不是||
运算符:
if ((pThis.value != 'All TCP') && (pThis.value != 'All UDP'))
编辑:
正如Cerbrus所指出的,您根本不需要if
语句,您可以通过反转它来直接使用布尔表达式(x==y || x==z
与!(x!=y && x!=z)
相同):
<script type="text/javascript">
function chgJob(pThis, pRow) {
$x_disableItem('f02_' + pRow, pThis.value == 'All TCP' || pThis.value == 'All UDP');
}
</script>
试试这个:
if ((pThis.value != 'All TCP') && (pThis.value != 'All UDP'))
或:
function chgJob(pThis, pRow)
{
if ((pThis.value == 'All TCP') || (pThis.value == 'All UDP'))
{
$x_disableItem('f02_' + pRow, true);
}
else
{
$x_disableItem('f02_' + pRow, false);
}
}
如前所述,在您的if-else
中,您需要&&
运算符,而不是||
,但是:
您也可以通过以下操作完全删除if
:
function chgJob(pThis, pRow) {
$x_disableItem('f02_' + pRow, (pThis.value == 'All TCP' || pThis.value == 'All UDP'));
}
如果pThis.value
是"ALL TCP"
或"ALL UDP"
,则该项目将被禁用。