0

私は、この 2 つの小さなスクリプトを成功させるために何時間も必死に試みました。そのように使用すると、誰も機能しませんが、1つだけ含めれば問題ありません。したがって、問題はコード自体ではなく、コードが一緒に使用された場合の競合です。私は何十もの組み合わせを試しましたが、elseステートメントを追加することもできましたが、運もありませんでした。


コード 1

<script type="text/javascript">// <![CDATA[
function on_my_form_loaded(event) {
if (event=='reserve')
var mobile_number_param = document.getElementById('mobile_number_param');
mobile_number_param.value = "[cb:userdata field="cb_myfield" user="#me" /]";
mobile_number_param.readOnly = true;
var email = document.getElementById('email');
email.readOnly = true;
var first = document.getElementById('first');
first.readOnly = true;
var last = document.getElementById('last');
last.readOnly = true;
}
// ]]></script>

コード 2

<script type="text/javascript">// <![CDATA[
function on_my_form_loaded(event) {
if (event=='show_cart')
document.getElementById('empty_cart_block').style.display='none';
}
// ]]></script>

残念ながら、私はコーダーではありません...誰か提案をお願いします?

4

4 に答える 4

1

次のようなことを試してください:

<script type="text/javascript">// <![CDATA[
function on_my_form_loaded(event) {
    if (event=='reserve') {
        var mobile_number_param = document.getElementById('mobile_number_param');
        mobile_number_param.value = "[cb:userdata field="cb_myfield" user="#me" /]";
        mobile_number_param.readOnly = true;
        var email = document.getElementById('email');
        email.readOnly = true;
        var first = document.getElementById('first');
        first.readOnly = true;
        var last = document.getElementById('last');
        last.readOnly = true;
    }
    else if (event=='show_cart') {
        document.getElementById('empty_cart_block').style.display='none';
    }
}
// ]]></script>
于 2013-04-28T21:53:04.503 に答える
1
<script type="text/javascript">// <![CDATA[
function on_my_form_loaded(event) {
    if (event=='reserve') {
        var mobile_number_param = document.getElementById('mobile_number_param');
        mobile_number_param.value = "[cb:userdata field="cb_myfield" user="#me" /]";
        mobile_number_param.readOnly = true;
        var email = document.getElementById('email');
        email.readOnly = true;
        var first = document.getElementById('first');
        first.readOnly = true;
        var last = document.getElementById('last');
        last.readOnly = true;
    }

    else if (event=='show_cart') {
        document.getElementById('empty_cart_block').style.display='none';
    }
}
// ]]></script>

欲しかった?

于 2013-04-28T21:53:23.197 に答える
1

両方を同じ関数に移動できます。on_my_form_loaded次に、if else を使用して、実行するコードのチャンクを決定します。お気に入り:

    <script type="text/javascript">// <![CDATA[
function on_my_form_loaded(event) {
    if (event=='show_cart')
    {
        document.getElementById('empty_cart_block').style.display='none';
    }
    else if (event=='reserve')
    {
        var mobile_number_param = document.getElementById('mobile_number_param');
        mobile_number_param.value = "[cb:userdata field="cb_myfield" user="#me" /]";
        mobile_number_param.readOnly = true;
        var email = document.getElementById('email');
        email.readOnly = true;
        var first = document.getElementById('first');
        first.readOnly = true;
        var last = document.getElementById('last');
        last.readOnly = true;
    }
}

// ]]></script>

イベントが の場合、show_cartコードの最初のチャックが実行されます。イベントが次の場合、reverseコードの 2 番目のチャンクが実行されます。

于 2013-04-28T21:53:27.490 に答える
0

これを処理するより良い方法がありますが、switch ステートメントを使用してみてください。

function on_my_form_loaded(event) {
    switch (event) {
    case "reserve":
        var mobile_number_param = document.getElementById('mobile_number_param');
        mobile_number_param.value = "[cb:userdata field="cb_myfield" user="#me" /]";
        mobile_number_param.readOnly = true;
        var email = document.getElementById('email');
        email.readOnly = true;
        var first = document.getElementById('first');
        first.readOnly = true;
        var last = document.getElementById('last');
        last.readOnly = true;
        break;
    case "show_cart":
        document.getElementById('empty_cart_block').style.display = 'none';
        break;
    }
}
于 2013-04-28T21:53:42.370 に答える