2017-08-16 1 views
0

Bonne journée. J'ai lu et fait presque toute la solution dans les questions mais ne peux pas sembler résoudre mon problème. Comme écrit dans ma question, en mvc, je passe une valeur de contrôleur pour afficher une chaîne et ensuite obtenir par javascript pour exécuter un modal si jamais une certaine condition est remplie. aidez s'il vous plaît. Merci.Passe la valeur du texte de saisie au javascript qui ne fonctionne pas

ici est le code dans mon contrôleur:

public ActionResult Series() 
    { 
     List<sample> series = db.samples.Where(x => x.status == "False").ToList(); 
     if (series.Count == 0) 
     { 
      ViewBag.Info = "None"; 
     } 
     else { 
      ViewBag.Series = series; 
      ViewBag.Info = "Have"; 
     } 
     return View(); 
    } 

Mon Voir:

<input type="text" value="@ViewBag.Info" id="info" name="info" /> 

Mon Javascript:

@section Scripts{ 
<script> 
$(window).on('load', function() { 
    var modelll = document.getElementById("@(ViewBag.Info)").value; 
    var s_end = document.getElementById("myNumber2").value; 
    var s_current = document.getElementById("myNumber3").value; 
    var s_status1 = document.getElementById("status").value; 

    var s_id1 = parseInt(document.getElementById("myNumber").value); 
    var s_end2 = parseInt(s_end, 10); 
    var s_current2 = parseInt(s_current, 10); 
    var x = parseInt(s_current, 10) + 1; 

    document.getElementById("item1").value = s_id1; 
    document.getElementById("item2").value = s_end; 
    document.getElementById("item3").value = x; 
    document.getElementById("status2").value = s_status1; 

    if (modelll === 'Have') 
    { 

     if ((s_current2 > s_end2) && (s_current2 != s_end2)) { 
      $('#myModal').modal({ backdrop: 'static', keyboard: false }); 
      $('#myModal').modal('show'); 
     } 
    } 
    else 
    { 
    $('#myModal').modal({ backdrop: 'static', keyboard:false }); 
    $('#myModal').modal('show'); 
    } 

}); 
</script> 

}

+0

var modelll = document.getElementById ("info") valeur; –

+0

l'ont déjà essayé sr. ne fonctionne toujours pas –

+0

var modelll = document.getElementById ('info'); –

Répondre

0

getElementById ont besoin d'un ID, mais vous passent au @ViewBag.Info. changez-le en:

var modelll = document.getElementById("info").value; 

également vous faites beaucoup de variables supplémentaires qui ne sont pas vraiment nécessaires. par exemple pour obtenir ce que vous avez à s_current2, vous pouvez utiliser

var s_current = parseInt(document.getElementById("myNumber3").value, 10); 

pas besoin de créer une autre variable pour le convertir en nombre entier.

+0

sori j'essaie juste d'apprendre le javascript. Im juste un débutant à ceci. –

1

Pour obtenir la valeur de textbox

var modelll = document.getElementById("info");

Pour définir la valeur à textBox

document.getElementById("info").value = var modelll;

vous utilisez @ViewBag.Info au lieu de id élément.

+0

l'ai essayé la première fois mais depuis ne fonctionnant pas j'ai essayé de diriger le viewbag à l'obtenir. maintenant je l'ai mis à jour ne fonctionne toujours pas –

+0

Une fois vérifier l'élément ID dans l'outil de débogage. –

+0

je n'ai rien trouvé de suspect –

0

ligne suivante est à l'origine du problème dans votre code.

var modelll = document.getElementById("@(ViewBag.Info)").value; 

    // document.getElementById needs Id but you are passing @(ViewBag.Info) which is wrong 

    var modelll = document.getElementById("info").value; //info id of your textbox 
// now check 
    if (modelll === 'Have') 
    { } 
    else 
    { } 
+0

salut sr. J'ai changé le code d de var modelll = document.getElementById ("@ (ViewBag.Info)"). value; à var modelll = document.getElementById ("info"); comme dit par sr Kiran Shahi mais toujours rien –

+0

Salut, j'ai essayé ce code et il fonctionne très bien var modelll = document.getElementById ("info"). value; si (modelll === "Avoir") { alerte ('hi'); alerte (modelll); } me donner les deux alertes – jANVI