2

以下の「その他」のボックスがあります。ボックスを検証して、表示されている場合にのみ空白にならないようにします。簡単なことのために私は問題を抱えています。どんな助けでも大歓迎です。ありがとう

    else if($('#myBox_' + id + ':visible')) { if(!blank('otherprodtypebox[<xsl:value-of select="@id"/>]')){alert("Please enter a valid other option");return false;} }


    <script type="text/javascript">
function myOtherBox(e, id) {
    if (e.value == 'otherprodtype')
    {
        $('#myBox_' + id).show();
    }
    else
    {
        $('#myBox_' + id).hide();
    }

}
</script>

    <tr style="display:none;">
    <xsl:attribute name="id">myBox_<xsl:value-of select="@id"/></xsl:attribute>
    <td class="Label">Other</td>
    <td>
        <input class="amdInputText" type="text" id="otherprodtypebox" value="">
              <xsl:attribute name="value"><xsl:value-of select="otherprodtypebox"></xsl:value-of></xsl:attribute>
        </input>
    </td>
</tr>

編集:

私は今それをほぼ機能させています:

else if($('#myBox_<xsl:value-of select="@id"/>').is(':visible')) { if(!blank('otherprodtypebox[<xsl:value-of select="@id"/>]')){alert("Please enter a valid other option");return false;} }

わかりました。これは、ボックスが表示されている場合にのみ検証をチェックし、空の場合はアラートをスローするようですが、奇妙な理由でボックスに入力すると、期待どおりにアラートがスローされませんが、続行できず、エラーは発生しません。メッセージ

4

4 に答える 4

1

私はそれを何とか組み合わせて動作させることができましたが、最も重要なのは.is(':visible')

作業コード:

else if(($('#myBox_<xsl:value-of select="@id"/>').is(':visible'))&amp;&amp;(!blank('otherprodtypebox[<xsl:value-of select="@id"/>]'))){alert("Please enter a valid other option");document.lending.otherprodtypebox[<xsl:value-of select="@id"/>].focus();return false; }
于 2013-02-08T14:33:59.307 に答える
1

で置き換える$('#myBox_' + id + ':visible')$('#myBox_' + id).is(':visible')問題が修正されます

于 2013-02-08T14:51:18.410 に答える
0

よくわかりませんが、これが問題を引き起こす可能性があると思います(これは結果を返しますか?確認できます):

$('#myBox_' + id + ':visible')

これの代わりに、次のような表示属性を確認することができます。

$('#myBox_' + id).attr('visible')
于 2013-02-08T11:56:21.443 に答える
0

$('#myBox_' + id + ':visible')これはjQueryセレクターであるため、一致する要素がない場合は空の配列を返すことに注意してください。

空の配列をJavaScriptでブール値に変換すると、常にが返されtrueます。したがってif($('#myBox_' + id + ':visible'))、常に。を返しtrueます。

if($('#myBox_' + id + ':visible').length > 0)セレクターが少なくとも1つの要素と一致していることを確認するために使用できます。

于 2013-02-08T12:39:54.237 に答える