jQuery is not Working Properly for the first Time on page Load

40 Views Asked by At

I have a script and i was running it over a website through tempermankey. The script is basically inserting a datalist in an input field and changing the other input value based on datalist selected value.

code:

(function() {
$("bdi:contains('Truck No')").closest('div').next().find('input').attr({
    maxlength: "10",
    Autocomplete: "OFF",
    list: "KASHIPUR",
    Placeholder: "TRUCK NUMBER",
    autocapitalize:"ON"
    }).after('<Datalist ID=KASHIPUR></Datalist>');

 $("bdi:contains('Truck No')").closest('div').next().find('input').blur(function(){
   var val=$("bdi:contains('Truck No')").closest('div').next().find('input').val();
    var obj=$("#KASHIPUR").find("option[value='"+val+"']");
if(obj !=null && obj.length>0||($("bdi:contains('Vehical 
Type')").closest('div').next().find('input').val()==""))


   return false;
        else
             alert("Pls Ask Depot to add the Vehicle Number");
 $("bdi:contains('Truck No')").closest('div').next().find('input').focusin();})

const options = [
["HR74A8784","9760027187"],
["UK18CA6626","7906594792"],
["UK18CA6821","7987481793"]
 ];

jQuery( function($) {
const HTMLOptions = options.reduce((html, item) => {
 html += `<option value="${item[0]}"lebel="${item[1]}"></option>`;
 return html;
  }, "");

$("#KASHIPUR")
.append(HTMLOptions)
$(document).ready(function() {

$("bdi:contains('Truck No')").closest('div').next().find('input').click(function()
{
    var value = $("bdi:contains('Truck No')").closest('div').next().find('input').val();
    ($('#KASHIPUR [value="' + value + '"]').data('value'));
   });
  });

   $(document).on('change', $("bdi:contains('Truck No')").closest('div').next().find('input'), function () {
     $("bdi:contains('Driver Mobile No')").closest('div').next().find('input').val
     ($("#KASHIPUR option[value='" + $("bdi:contains('Truck No')").closest('div').next().find('input').val() + "']").attr("lebel"));
  });
});

At the first time when page loads the URL is 'https://www.eye2serve.com:9001/sap/bc/ui5_ui5/sap/zdca_portal/index.html?saml2=disabled&sap-client=300&sap-language=EN#/Depot-Dispatch-Detail/6527164082'

At this time the error come in the below code:-

$("bdi:contains('Truck No')").closest('div').next().find('input').blur(function(){
   var val=$("bdi:contains('Truck No')").closest('div').next().find('input').val();
    var obj=$("#KASHIPUR").find("option[value='"+val+"']");
if(obj !=null && obj.length>0||($("bdi:contains('Vehical 
Type')").closest('div').next().find('input').val()==""))

   return false;
        else
            alert("Pls Ask Depot to add the Vehicle Number");
  $("bdi:contains('Truck No')").closest('div').next().find('input').focusin();})

The condition is true but the page is showing 'else' statement and giving alert

When i Backward the page the URL is "https://www.eye2serve.com:9001/sap/bc/ui5_ui5/sap/zdca_portal/index.html?saml2=disabled&sap-client=300&sap-language=EN#/Depot-Dispatch-List"

Then again forward then url is 'https://www.eye2serve.com:9001/sap/bc/ui5_ui5/sap/zdca_portal/index.html?saml2=disabled&sap-client=300&sap-language=EN#/Depot-Dispatch-Detail/6527164082'

after this, code is working properly. can anybody help.

0

There are 0 best solutions below