user450549
user450549

Reputation:

multiple textboxes for one field

If I have 3 text boxes for 3 field which need to be appended together, how would you go about doing this?

for example:

@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber1"})
@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber2"})
@Html.TextBoxFor(model => model.PhoneNumber, new { @id = "PhoneNumber3"})

but when I call model.PhoneNumber in the controller, I only get the first text box value.

Upvotes: 0

Views: 2108

Answers (2)

CR41G14
CR41G14

Reputation: 5594

You would need multiple phone numbers in your model phoneNumber1, phoneNumber2, phoneNumber3 as you can only bind one element of one type to the model.

Alternatively you can use FormCollection

use standard imports instead of model binding

<input type="text" value="" name="phoneNumber" id="phoneNumber1" />
<input type="text" value="" name="phoneNumber" id="phoneNumber2" />
<input type="text" value="" name="phoneNumber" id="phoneNumber3" />

Then in your Controller

[HttpPost]
public ActionResult Index(MyModel model, FormCollection frm){

//get elements from form
String[] numbers = frm["phoneNumber"].Split(',');

// you will have your 3 numbers


}

Upvotes: 3

Stefan P.
Stefan P.

Reputation: 9519

Javascript hack:

<script type="text/javascript">

$('#formID').submit(function() {
    $('#PhoneNumber1').val($('#PhoneNumber1').val() + ', ' + $('#PhoneNumber2').val() + ', ' + $('#PhoneNumber2').val());
});

</script>

Upvotes: -2

Related Questions