2017-10-20 22 views
0

Ceci est étrange. Mon .val() et .html() est toujours indéfini bien que je l'utilise après que tout soit chargé sur la page. aussi, .text() est vide.après la valeur de la zone de texte chargée par défaut est indéfinie

<div class="row col-md-12"> 
<div class="row col-md-12"> 
    <label id="lblDir" style="width:auto">Scripts Directory Path: <input type="text" id="txturl"></label> 
</div> 
<div class="row col-md-12"> 
    <div id="grid" style="border:dashed"></div> 
</div> 
<div class="row col-md-12"> 
    <input id="btnRun" type="button" value="Run Scripts" style="margin:5px" /> 
</div> 
<div class="row col-md-12"> 
    <label id="result"></label> 
</div> 
</div> 
<script> 
$(function() { 
    $("#btnRun").kendoButton(); 
    $("#btnRun").on("click", function (e) { 
     alert($('#txtUrl').text()); 
    }); 
}); 

choses que j'ai essayé 1. mettre balise script avant balise div 2. ajouter la fonction onclick dans le bouton html

<input id="btnRun" type="button" value="Run Scripts" onclick="onInstall();" style="margin:5px" /> 

résultat est le même

+0

Avez-vous obtenez des erreurs dans la console du navigateur? –

+3

Votre identifiant sur l'entrée est 'txturl' mais dans jquery vous utilisez' # txtUrl' il devrait être '# txturl'. Aussi, si vous voulez obtenir la valeur de l'entrée, utilisez $ ('# txturl'). Val() ' –

+0

merci Carsten parfois je ne peux pas voir des choses simples: P – Samra

Répondre

1

Vous devez conserver l'id dans le balisage HTML et la valeur d'id dans le script même. Et la valeur de l'identifiant est sensible à la casse.

Dans votre balisage html, l'identifiant du type d'entrée est "txturl" mais dans js il s'agit de "txtUrl". Faites à la fois "txturl" ou "txtUrl" et cela devrait fonctionner correctement.

+1

Un élément' input' utilise '.val()', pas '.text()'. :) –

+0

oui question était la différence de cas merci! – Samra

3

Comme @Carsten Løvbo Andersen mentionné, vous devez utiliser $('#txturl').val() au lieu de $('#txtUrl').text() parce que:

  • #txtUrl n'existe pas. Les sélecteurs CSS classes et jQuery sont souvent sensibles à la casse. (L'insensibilité à la casse n'est pas très bien prise en charge.)
  • Les éléments input ne possèdent pas .text(), mais plutôt .val().

$(function() { 
 
    $("#btnRun").on("click", function (e) { 
 
     alert($('#txturl').val()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="row col-md-12"> 
 
<div class="row col-md-12"> 
 
    <label id="lblDir" style="width:auto">Scripts Directory Path: <input type="text" id="txturl"></label> 
 
</div> 
 
<div class="row col-md-12"> 
 
    <div id="grid" style="border:dashed"></div> 
 
</div> 
 
<div class="row col-md-12"> 
 
    <input id="btnRun" type="button" value="Run Scripts" style="margin:5px" /> 
 
</div> 
 
<div class="row col-md-12"> 
 
    <label id="result"></label> 
 
</div> 
 
</div>

+1

J'apprécie l'honneur, mais je suis heureux de laisser votre réponse rester, c'est bien documenté. +1 –

+0

@Chris Merci, j'avais essayé .val() précédemment et même cela ne fonctionnait pas. Kousik a souligné à juste titre que je n'ai pas remarqué txtUrl était en majuscule :(si STUPID de moi ... mais votre point est également valable :) – Samra

+0

Pas de soucis! Votre bienvenue, que Dieu bénisse :) –