Firefox Java сценарий формы - PullRequest
       5

Firefox Java сценарий формы

0 голосов
/ 23 апреля 2011

У меня есть следующий код JSP ниже.У меня проблемы с отправкой Firefox других параметров в методе get, чем в Interenet Explorer.Есть идеи?

Вот URL-адрес get:

Internet Explorer: http://www.example.com/app/search/SkillSearch.do?dispatch=skillSearch2&textSearch=test&search=&searchField=test&searchType=

Firefox: http://www.example.com/app/search/SearchPeople.do?dispatch=&textSearch=&search=&searchField=test&searchType=

<script>
function doSearch(selection,searchInfo){
    // Get the Search Bar Form
    var searchForm = document.getElementById('searchBarForm').firstChild;

    // Get the dispatch input in the Search Bar Form
    var searchFormChildren = searchForm.childNodes;
    var dispatch;
    for (var i=0; i<searchFormChildren.length; i++) {
        if (searchFormChildren[i].name == "dispatch") {
            dispatch = searchFormChildren[i];
            break;
        }
    }

    // Variable to hold search input
    var searchField;

    // Set form variables depending on type of search selected
    if (selection.selectedIndex == "0") {
        dispatch.value = "skillSearch2";
        searchForm.action = "/app/search/SkillSearch.do";

        for (var i=0; i<searchFormChildren.length; i++) {
            if (searchFormChildren[i].name == 'textSearch') {
                searchField = searchFormChildren[i];
                break;
            }
        }
    }
    else if (selection.selectedIndex == "1") {
        dispatch.value = "searchPeople";
        searchForm.action = '/app/search/SearchPeople.do';

        for (var i=0; i<searchFormChildren.length; i++) {
            if (searchFormChildren[i].name == 'search') {
                searchField = searchFormChildren[i];
                break;
            }
        }
    }
    else if (selection.selectedIndex == "2") {
        dispatch.value="search";
        searchForm.action = '/app/search/LinkSearch.do';

        for (var i=0; i<searchFormChildren.length; i++) {
            if (searchFormChildren[i].name == 'search') {
                searchField = searchFormChildren[i];
                break;
            }
        }
    }

    searchField.value = searchInfo.value;
    searchForm.submit();
}

function checkKeyPress(selection, searchInfo) {
    if (window.event && window.event.keyCode == 13) {
        doSearch(selection, searchInfo);
    }
}
</script>

<logic:present name="SSO_TOKEN" scope="session">
    <p id="searchBarForm">
        <html:form action="/search/SearchPeople.do" method="get">
            <input type="hidden" name="dispatch" value=""/>
            <input type="hidden" name="textSearch" value="" />          <input type="hidden" name="search" value="" /> 
            <input size="15" name="searchField" value="Search" onfocus="if (this.value == 'Search') this.value = '';" onkeypress="checkKeyPress(searchType, searchField)"/>&nbsp;&nbsp;&nbsp;&nbsp;
            <select class="select" name="searchType" size="1" style="font-size: 13px;" onkeypress="checkKeyPress(searchType, searchField)">
                <option value="" selected>Subject Matter Experts</option>
                <option value="">Users</option>
            </select>&nbsp;&nbsp;&nbsp;&nbsp;
            <input class="button" type="button" value="Search" onclick="doSearch(searchType, searchField)" />
        </html:form>
    </p>
</logic:present>

Ответы [ 2 ]

3 голосов
/ 23 апреля 2011

Validate.Подтвердить.Проверить. Абзац не может содержать форму, и разные браузеры, по-видимому, восстанавливаются после этой ошибки по-разному.

Кроме того, не думайте, что первый элемент ипервые потомки одинаковы.Некоторые браузеры создают текстовый узел, состоящий полностью из пробелов, когда у вас есть: <foo> <bar></bar> </foo>.

1 голос
/ 23 апреля 2011

Ответ Дэвида Дорварда точен. Сравните IE и Firefox на http://software.hixie.ch/utilities/js/live-dom-viewer/saved/949 (что в большей или меньшей степени соответствует разметке, если вы подаете документ в режиме quirks)

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