0

正如标题所示,我试图在单击复选框后将值从一个文本框复制到另一个文本框。我知道如何通过 javascript 做到这一点,唯一的问题是它需要在服务器端使用 razor 完成。我正在尝试使用下面的代码来完成此操作,但是它给了我臭名昭著的“对象引用未设置为对象的实例”。错误。但我不确定它指的是什么,任何帮助将不胜感激。

<div class="editor-field">
    @Html.CheckBoxFor(model => model.SameAddress, new { id = "chkAddress" })

    @{bool isChecked = false; 
        if (Boolean.TryParse(Request.Form.GetValues("chkAddress")[1], out isChecked) == true)
        {

        }
    }
</div> 
4

1 回答 1

2

Razor 不会在这方面为您提供帮助。有两种方法可以做到这一点。

1)使用javascript:监听复选框更改事件,如果选中,则读取第一个文本框的内容并将其粘贴到第二个。这是我会去的首选。

像这样的东西

$(function(){
    $("#chkCopy").change(function(){
        $("#address2").val("");
       if(this.checked)
       {
            $("#address2").val($("#address1").val())

            //Lets read city and paste it in the second place as well.
            $("#city2").val($("#city1").val())
       }                
    });
});​

假设您想在单击带有 id 的复选框时从带有 idaddress1的文本框复制到带有 id 的文本框address2chkCopy

工作样本:http: //jsfiddle.net/9fM89/4/

2)使用表单:让用户单击“复制”按钮,它会向您的操作方法提交表单,您可以在其中读取这些表单元素的值并将其设置在用于第二个复选框的那些属性上并将其返回给风景。

于 2012-05-17T18:47:24.570 回答