使用应用程序在Safari上获取“断言失败:(匿名函数)”

时间:2012-05-08 14:13:24

标签: java javascript html rest safari

我正在为ipad创建一个应用程序,我正在使用Java。 JavaScript的。 HTML和休息。我有一个国家列表,我想在应用程序的页面之一的下拉列表中显示我试图使用rest来填充此列表,但是当我运行应用程序时,我在droplist中没有得到任何东西,safari正在给予错误

Assertion failed: (anonymous function) :449

我在这个错误中得到了8次,最后有不同的数字

这是我正在使用的一些代码

main.html中

<div id="wrapper">
<div id="mainBackground">
     <div id="stflogo"><img src="images/logo.png" width="200" height="186" alt="MyLogo logo" /></div>

<div id="formContainer">
        <h1>Register Your Card</h1>
        <form id="AccountDetailsForm" method="post" data-ajax="false">

                <input  id="tfscCardNumber" type="hidden" name="tfscCardNumber" class="readonly" minlength="2" maxlength="20" readonly="readonly" disabled="disabled"/>


                <p><label id="firstNameLabel" for="firstName" class="displayBlockLabel RequiredField">First Name </label>
                <input id="firstName" type="text" name="firstName" class="required" minlength="2" maxlength="20"/></p>
                <p><label id="lastNameLabel" for="lastName" class="displayBlockLabel RequiredField"> Last Name </label>
                <input id="lastName" type="text" name="lastName" class="required" minlength="2" maxlength="25"/></p>        

                <p><label id="address1Label" for="address1" class="displayBlockLabel RequiredField">Address 1 </label>
                <input id="address1" type="text" name="address1" class="required" minlength="2" maxlength="40"/></p>
                <p><label id="address2Label" for="address2" class="displayBlockLabel">Address 2</label>
                <input id="address2" type="text" name="address2" maxlength="40"/></p>

                <p><label id="cityLabel" for="city" class="displayBlockLabel RequiredField">Town / City </label>
                <input id="city" type="text" name="city" class="required" minlength="2" maxlength="40"/></p>

               <p> <label id="countyLabel" for="county" class="displayBlockLabel RequiredField">County / State </label>
                <input id="county" type="text" name="county" class="required" minlength="2" maxlength="40"/>    </p>

               <p> <label id="postcodeLabel" for="postcode" class="displayBlockLabel RequiredField">Postcode / Zip </label>
                <input id="postcode" type="text" name="postcode" class="required" minlength="2" maxlength="11"/>    </p>                

               <p> <label id="countrySelectionLabel" for="countrySelection" class="displayBlockLabel RequiredField">Country </label>
                <select id="countrySelection" class="required">
                </select> </p>

               <p><label id="telephoneLabel" for="telephone" class="displayBlockLabel RequiredField">Tel Number </label>
                <input id="telephone" type="tel" name="telephone" class="tel number required" minlength="2" maxlength="12"/></p>    
                <p><label id="emailLabel" for="email" class="displayBlockLabel RequiredField">Email </label>
                <input id="email" type="email" name="email" class="email required" minlength="2" maxlength="100"/></p>                                      
                <p><label id="confirmEmailLabel" for="confirmEmail" class="displayBlockLabel RequiredField">Confirm Email </label>
                <input id="confirmEmail" type="email" name="confirmEmail" class="email required" minlength="5" maxlength="100"/></p>    

                <p><label id="passportNumberLabel" for="passportNumber" class="displayBlockLabel RequiredField">Passport Number </label>
                <input id="passportNumber" type="text" name="passportNumber" class="required" minlength="3" maxlength="20"/></p>        
                <p class="tandcnotice">Please Ensure that you have read the Terms &amp; Conditions and Privacy &amp; security Policy</p>

                <p class="tandcCheckbox">
                <input type="checkbox" name="accepttandc" id="accepttandc" class="checkbox" />
                <label for="checkbox" class="accepttandc">I have read the Terms &amp; Conditions</label>
                <p>

                <input class="button" type="submit" value="Submit" data-role="button" data-theme="redbutton"/>
        </form>
     </div><!-- END OF FORM CONTAINER -->
     </div>
</div>
....

appForm.js

$('#wrapper').live("pageshow", function() {
if ( $('#countrySelection')[0].length < 1){

    $.mobile.loadingMessage = "Retrieving Countries";
    $.mobile.showPageLoadingMsg();

    Repository.load('details/countries/all', function(countries){
        $.each(countries, function() {
            $('#countrySelection').append('<option value="' + this.id + '">' + this.name + '</option>').selectmenu('refresh');
        });
        $.mobile.hidePageLoadingMsg();
    });
}

});


$('#wrapper').live("pagecreate", function() {               

$('#AccountDetailsForm select, #AccountDetailsForm input[type!=submit]').focus(function (){
    focusScroller(this);                                                                                   
});
$('#AccountDetailsForm select, #AccountDetailsForm input[type!=submit]').blur(function (){
    if ( $('#accountFormScrollView').data().scrolllistview._sy < $('#accountFormScrollView').data().scrolllistview._maxY){
         $('#accountFormScrollView').data().scrolllistview.scrollTo(0, $('#accountFormScrollView').data().scrolllistview._maxY, 0);
    }
}); 

});           


$(window).resize(function (){
// Android Resize Event needed for the keyboard
});

var focusScroller = function(formElement){
    $(window).scrollTop(0);
    var elementLabel = "#" + formElement.id + "Label";   
    var offSetPosition = $(elementLabel)[0].offsetTop;
    if(formElement.labels === undefined && formElement.id === "countrySelection"){
        // ios4 quirk for select elements
        offSetPosition = 100; 
    }

    scrollTo(0,0,0);
    $('#accountFormScrollView').data().scrolllistview.scrollTo(0, offSetPosition * -1, 0);
}


$('#wrapper"').live("pageshow", function() {
if (getTfscCardNumber() === ''){
    $('#passportNumberLabel').css('display', 'none');
    $('#passportNumber').css('display', 'none'); 
    $('#passportNumber').attr("disabled", true);
}else{
    $('#passportNumberLabel').css('display', 'block');
    $('#passportNumber').css('display', 'block'); 
    $('#passportNumber').attr("disabled", false);
}

loadForm($('#AccountDetailsForm')[0]);
});

如果需要,我可以提供更多代码,但我确定其余的代码是可以的,但如果有人想查看任何其他代码,请询问

这个错误意味着什么,任何人都可以看到出了什么问题?

1 个答案:

答案 0 :(得分:10)

这是Safari及其处理输入类型=“tel”的错误。我不担心。

我遇到了同样的问题然后我发现了这个:https://github.com/jquery/jquery-mobile/issues/2341