【问题标题】:retrieve the model property value检索模型属性值
【发布时间】:2016-01-08 11:25:22
【问题描述】:

我有以下表格

@model project_name.Models.AddNewProduct    

<h4>Add New Product</h4>    

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">                
                @Html.LabelFor(model => model.Product_ID, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.Product_ID, new { @class = "form-control" })
            </div>
     </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div>            
    </div>
}

我想使用 jquery 或 javascript 获取此模型属性

为此,我只是遵循如下方法

 @model project_name.Models.AddNewProduct    

<h4>Add New Product</h4>    

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">                
                @Html.LabelFor(model => model.Product_ID, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.TextBoxFor(model => model.Product_ID, new { @class = "form-control" })
            </div>
     </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Create" class="btn btn-default" />
        </div> 
        <div id="testid" class="col-md-offset-2 col-md-10" >
            <input type="button" value="Test" class="btn btn-default" />
        </div>           
    </div>
}

然后在 javascipt 中

<script type="text/javascript">

    $(document).ready(function () {

        var sampleID;

        $("#Product_ID").keyup(function () {
            sampleID = $('#Product_ID').val();            
        });

        $('#testid').click(function () {
            alert(sampleID);
        });
    });

</script>

但这似乎不是最适合我的方法,keyup 如果能在课程结束后提出获得这些值的好方法,将不胜感激

【问题讨论】:

  • $('#testid').click(function () { alert($('#Product_ID').val()); } 有什么问题,id="testid" 的元素是什么?
  • @StephenMuecke 就是这样,但是如果没有.click(),是否有任何函数可以获取该值?
  • 不确定您想要实现什么 - 例如,您可以使用 $("#Product_ID").change(function () { alert($(this).val()); }) 来在用户每次更改值时显示警报(以及选项卡超出控制范围)
  • @StephenMuecke 实际上这个问题是由于this question
  • 在那个问题中,您的 ActionLink() 将传递 null 因为您从未在模型中设置 Product_ID 的值,然后再将其传递给视图。没有必要使用 javascript/jquery 来解决这个问题

标签: javascript c# jquery asp.net-mvc


【解决方案1】:

您可以使用$('#Product_ID').val()#testid 的点击事件中获取#Product_ID 的值,如下所示。

$('#testid').click(function () {
    alert($('#Product_ID').val());
});

【讨论】:

  • 单独的代码块并不能提供好的答案。请添加解释(为什么它解决了问题,错误在哪里等等......)
  • 如果没有.click(),是否有任何函数可以获取该值?
  • 只需在需要值的地方使用$('#Product_ID').val()。 @kez
【解决方案2】:

由于您使用的是剃须刀,因此您可以使用 @ 直接在 jquery 中获取它,如下所示:

$(function() {
   var sampleID = "@Model.Product_ID";
});

【讨论】:

    【解决方案3】:

    该模型仅适用于服务器端。如果您需要对视图中的值做一些事情,您可以像处理常规 HTML 页面和 javascript 一样处理它。

    如果要获取输入字段的值,请使用失去焦点时触发的模糊事件。

    $("#Product_ID").blur(function() {
      alert( "Handler for .blur() called." );
    });
    

    【讨论】:

      【解决方案4】:

      这看起来像是你的 JS 中的一个错字。把kepup改成keyup。

      这应该可以按预期工作。

      $("#Product_ID").keyup(function () {
        sampleID = $('#Product_ID').val();alert(sampleID);    
        //or you can use
        alert($(this).val());
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-09
        • 2020-10-23
        • 2016-04-11
        • 1970-01-01
        • 1970-01-01
        • 2011-12-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多