JQUERY Форма Ajax, страница обновляется и не должна быть в Safari, не обновляется в FF (работает нормально) - PullRequest
0 голосов
/ 23 мая 2010

Я работаю над формой AJAX, которая находится в диалоге JQUERY UI. Он отлично работает в FireFox, но по какой-то причине в сафари он обновляет страницу до: /?

Пожалуйста, дайте мне знать, если что-то здесь не так?

<div class="modal-container">
    <form onsubmit="" action="" id="list-dialog-form" name="list-dialog-form">
        <div id="modal-wrapper">
            <br><br>
            <div class="modal-inputbar">
                <span style="width: 100px;" class="inputbar-label">
                    <label>Edit List Name:</label>
                </span>
                <span style="width: 200px;" class="inputbar-input">

                        <input type="text" style="padding-right: 25px;" autocomplete="off" maxlength="140" id="listname" value="Untitled">

                </span> 
            </div>
        </div>
        <div id="modal-submit" class="modal-submit">
            <span class="left delete-wrap">

                    <span onclick="deleteThisList(15);" class="delete"> </span>

            </span>
            <span style="line-height: 2em;" class="right">

                <input type="hidden" value="15" id="tasklistID">

                <input type="submit" value="update" id="dialogcloser">
                <input type="button" onclick="$('#listeditdialog').dialog('close');" value="close" id="dialogcloser">
            </span> 
        </div>
    </form>
</div>

// Handles Updating the List Title
$("#list-dialog-form").submit(function(){

    // Ajax Spinner
    $("#listname").css("background", "url('/images/ajax-loader.gif') no-repeat scroll 98% center #FFF");

    $.ajax({
        url: '/ajax/listname-update/index.cfm',
        data: ({listname: $("#listname").val().trim(), tasklistID: $("#tasklistID").val()}),
        dataType: 'json',
        type: 'post',
        success: function( result ) {

            // Update the name in the top, project list
            $("#list-" + $("#tasklistID").val()).find('a').html($("#listname").val().trim());
            $("#list-" + $("#tasklistID").val()).effect('highlight', {color: '#BDC1C7'}, 500);

            //Remove the Ajax Spinner
            $("#listname").css("background", "#FFF");
            $("#listname").effect('highlight', {color: '#BDC1C7'}, 500);

            //close the dialog
            $('#listeditdialog').dialog('close');

        }
    });

    return false;

});

1 Ответ

0 голосов
/ 23 мая 2010

Причина, по которой это работает в FireFox, заключается в том, что в String определена функция trim, но она не является стандартной.

Изменение:

$("#listname").val().trim()

до

$.trim($("#listname").val())

Ссылка: $.trim

...