показать / скрыть тег <div>не работает - PullRequest
1 голос
/ 04 мая 2011

У меня есть гиперссылка, которая должна вызывать 3 функции JS по одной во время события onclick.

<form name = "bulkcontactfrm" method="POST" action="<%= servletPath %>>
    <div id="saveDiv" layoutAlign="top" style="display:block;"> 
        <table id=""  align="left"  border="0" cellpadding="0" cellspacing="0">
        <tr>
             <td>
            <a href="javascript:void(0);" onclick="isAllowedToResubscribe(document.bulkcontactfrm); manipulateDIV(document.bulkcontactfrm); resubscribeCall(document.bulkcontactfrm);">&#160;Re-Subscribe</zoniac:roundrect>&#160;</a>
            </td>
        </tr>                        
        </table>
    </div>
    <div id="loadingDiv" class="cellWhiteBGFont" layoutAlign="top" style="display: block;"><p><img src="<%=ImageMappingManager.getImageName("imgLoading")%>" name = "b1">&nbsp;&nbsp;<font size='3'><b>Please wait...<b></font></p>
    </div>
</form>

Вот функции JS:

// First function validate the data using ajax call
function isAllowedToResubscribe(form) {
    //Client validation takes here 
    processAjaxRequestPost('ajaxRequestPost','SimpleHandler','getResubscribeEmailValidationDetails',emilIDStr,sourcefromStr);
}

// Second function hide the content in UI and show the Processing image in <DIV> tag
function manipulateDIV(form) {
    hideSaveDiv();
    showLoadingDiv();
}

function hideSaveDiv() {

    //hide the Re-Subscribe hyperlink 
    document.getElementById('saveDiv').style.display='none';
}
function showLoadingDiv() {
    //show the Processing image 
    document.getElementById('loadingDiv').style.display='block';
}

// Third function is for form submit using ajax call
function resubscribeCall(form) {
    //processAjaxRequestPost('ajaxRequestPost','SimpleHandler','getResubscribeEmailDetails',emilIDStr,sourcefromStr);
}

После того, как щелкните вызов функции проверки гиперссылки и получите успех, появится сообщение о подтверждении, нажмите OK на подтверждении. Но тег <DIV> не был скрыт, поэтому изображение прогресса не загружается.

1 Ответ

0 голосов
/ 05 мая 2011

Код здесь немного запутанный, поэтому очень сложно сказать, где проблема, и является ли то, что вы вставили здесь, именно тем, что вы используете.Но одна из возможностей состоит в том, что он не находит правильные элементы div, потому что вам не хватает отметки " в теге form:

<form name = "bulkcontactfrm" method="POST" action="<%= servletPath %>>

должно быть:

<form name="bulkcontactfrm" method="POST" action="<%= servletPath %>">

Aбыстрый тест, кажется, указывает на то, что отсутствующий " портит DOM в достаточной степени, чтобы document.getElementById() не работал.Сравните http://jsfiddle.net/nrabinowitz/n9S33/2/ и http://jsfiddle.net/nrabinowitz/n9S33/3/, чтобы увидеть это в действии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...