2016-08-11 8 views
-3

Ich habe eine Anforderung zum Erstellen eines einfachen SMS-Validators, der überprüft, ob * das Anfangssymbol und # die Endung ist. Das Formular hat ein Texteingabefeld und eine Schaltfläche Validieren.Jquery liest keine Sonderzeichen aus dem Eingabetext

Mit einem Klick auf die Schaltfläche .. es druckt die Daten in der Form und das erste und letzte Zeichen. Es funktioniert gut mit allen Zeichen außer # und &. Immer wenn ich ein solches Symbol betrete, schließt es die JQuery aus. Nicht sicher, was die Umgehungslösung ist.

enter image description here

<script type="text/javascript"> 
$(document).ready(function(){ 
$("#transactionForm").submit(function(event){ 
    event.preventDefault(); 
     var amountToSend = $("input#txnID").val(); 
    //alert(amountToSend); 
    var length = $('input#txnID').val().length; 

    if(length > 3){ 
     document.getElementById("loadingBlock").style.display = 'block'; 
     document.getElementById("calculationBlock").style.display = 'none'; 
     document.getElementById("errorBlock").style.display = 'none'; 

     var url = '<?php echo API_URL ?>'; 
     url = url+'/v1/smsValidator.php?txnID='+amountToSend; 

//Start of AJAX call  
    $.ajax({ 
    type: 'POST', 
    dataType: 'json', 
    url: url, 
}).done(function(response) { 
    document.getElementById("loadingBlock").style.display = 'none'; 
    var desc1 = $('#desc1'); 
    var messageTitle = $('#messageTitle'); 

    if(response.error){ 
     document.getElementById("errorBlock").style.display = 'block'; 
     $("#errorTitle").html(response.message); 
    }else{ 
    document.getElementById("calculationBlock").style.display = 'block'; 
    $("#messageTitle").html(response.message); 
    } 

}); 
//End of AJAX call 
    } 
}); 
}); 
</script> 
+0

Bitte geben Sie Ihren Code ein. –

+1

Sicher, weil Sie nicht diese Sonderzeichen in 'URL' entkommen ... 'URL = URL +'/v1/SMSValidator.php? TxnID = '+ encodeURIComponent (BetragToSend); '. –

+0

Wie und weil Sie eine POST-Anfrage senden, warum legen Sie diese Daten nicht in der Body-Anfrage fest? '$ .ajax ({data: amountToSend, ...});' –

Antwort

1
  1. Sie erhalten das DOM-Element
  2. Sie erhalten es Wert ist
  3. Sie überprüfen, ob das erste Element * und das letzte Element ist #

    var inputText = document.getElementById("inputText").value; 
    // in jQuery it's something like: var inputText = $("#inputText).val() 
    if (inputText[0] === "*" && inputText[inputText.length - 1] === "#") { 
        // the number is valid 
    } 
    
+0

Ich validiere diese Server-Seite ... mit PHP ... aber Javascript sendet keine Daten mit & oder # –