0

在下面的脚本中,我添加了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>
4

3 回答 3

4

一个字符串永远不可能同时等于'All TCP'和等于'All UDP',所以条件永远为真。

您想使用&&运算符而不是||运算符:

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>
于 2012-12-04T07:30:16.273 回答
0

试试这个:

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);
    }
}
于 2012-12-04T07:37:15.467 回答
0

就像已经说过的那样,在您的 中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",该项目将被禁用。

于 2012-12-04T07:45:04.817 回答