Получено исключение TypeError: window.parent.leftframe.document.viewForm не является функцией - PullRequest
0 голосов
/ 11 февраля 2019

Этот JS работает в IE, но когда я использую Chrome, всегда получаю эту ошибку:

исключение: TypeError: window.parent.leftframe.document.viewForm не является функцией при Checked

Я использую этот код для проверки ввода формы и возврата true, если пользователь вводит команду в этой форме)

Можете ли вы пролить свет на это?

Спасибо!Vince

function Checked() 
    {
    if (window.parent.leftframe.document.viewForm.changed.value == "true") {
        return true;
    }
    else {
        for (k = 0; k < 30; k++) {
            memcom = "member[" + i + "].command";    
            if (window.parent.leftframe.document.viewForm(memcom) != null && window.parent.leftframe.document.viewForm(memcom).value != "") {
        return true;
        }
    }
    return false;
    }
}

viewFrom в этом JSP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<table class="Product" cellspacing="1">
    <html:form action="/viewSubmit" method="post" onsubmit="return onSubmitForm()">
        <input type="hidden" name="submited" value="false"> 
        <html:hidden property="action"></html:hidden>
        <html:hidden property="changed"></html:hidden>
......

                <logic:equal name="viewForm" property="opt.withMemberList" value="true">
.......

                        <td colspan="3" class="Product2">
                <a href="#" onclick="return <bean:write name="viewForm" property="listpURL" listp="false"/>"><IMG src="images/product_list_button.gif" border="0" /></a>                
            </td>
..........              <tr>
                        <logic:iterate id="member" name="viewForm" property="members" indexId="i">
                ....                
                <html:hidden indexed="true" name="member" property="remark"></html:hidden>                                  
                <td align="location" class="Product2">
                    <html:select name="member" indexed="true" property="command" disabled="false">
                    <html:options name="member"  property="commandSelection"/>                                              
                    </html:select>          
                </td>
                         </tr>
......
        </logic:equal>
    </html:form>
</table>        

</html>

Chrome Devtools вывод:

Я могу видеть это в window.parent.leftframe.document.viewForm

name:"member[0].command"
nextElementSibling:null
nextSibling:text
nodeName:"SELECT"
nodeType:1
nodeValue:null
nonce:""

Я вижу [31] .name, когда мышь перемещается к имени, так же, как другие.Как я могу получить nodeValue из этого?

Спасибо!

1 Ответ

0 голосов
/ 11 февраля 2019

Может быть правильнее сказать, что IE не выдает ошибку (что вы должны получить).

В первом операторе if, window...viewForm... - этобыть обработанным как объект со свойством, называемым «измененным», который имеет свойство, называемое «значением»;однако позже вы ссылаетесь на то же самое в качестве функции.Глядя на свойство / объект document в Chrome, я не вижу свойства viewForm (таким образом, ошибка в Chrome).

Кроме того, было бы очень полезно в будущем, если выопубликовал используемый бит HTML.

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