将输入文本值传递给javascript无效

时间:2017-08-16 05:17:37

标签: javascript asp.net-mvc asp.net-mvc-4

美好的一天。我已经阅读并完成了问题中的几乎所有解决方案,但似乎无法解决我的问题。正如在我的问题中所写,在mvc中,我从控制器传递一个值来查看字符串,然后通过javascript获取运行模式,如果满足某个条件。请帮忙。感谢。

这是我控制器中的代码:

    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();
    }

我的观点:

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

我的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> 

}

3 个答案:

答案 0 :(得分:0)

getElementById需要一个ID,但您正在传递@ViewBag.Info。将其更改为:

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

你也在制作许多并非真正需要的额外变量。例如,要获得s_current2中的内容,您可以使用

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

无需创建另一个变量来将其转换为整数。

答案 1 :(得分:0)

从文本框中获取值

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

将值设置为文本框

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

您正在使用@ViewBag.Info而不是元素ID。

答案 2 :(得分:0)

以下行导致代码出现问题:

  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
    { }