6

I want to set the value of my input text using jquery. I have tried by doing this :

    <div class="editor-label">
        @Html.LabelFor(model => model.ID )
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.ID)
        @Html.ValidationMessageFor(model => model.ID)
    </div>

and jquery syntax :

    $("#ID").val(data.ID);

But it is not working. I have tried the same jquery code with this :

<input type="text" id="ID" />

This approach is working , but I don't know why @Html.EditorFor is not working with jquery .Thanks in advance

1
  • have you try $("#ID").val(data.ID); inside document.ready Commented Jun 27, 2013 at 5:22

5 Answers 5

4

You're better off using the TextBoxFor method as it allows you to change the id and class of the element directly whereas EditorFor doesn't unless you create a custom edit state for it (using EditorTemplate).

@Html.TextBoxFor(model => model.ID, new { id = "ID" })

I believe @Html.EditorFor(model => model.ID) will set the name attribute as that is what mvc depends upon to do its model binding so if the above is not to your liking you can perhaps use the name as a selector.

Sign up to request clarification or add additional context in comments.

Comments

3

You can add the @id, @class, etc on EditorFor as follows:

@Html.EditorFor(model => model.ID, new {htmlAttributes = new {@id="someid"}})

Comments

2

this works for me

<div class="editor-field">
    @Html.EditorFor(model => model.ID)
    @Html.ValidationMessageFor(model => model.ID)
</div>

<div class="editor-field">
    @Html.EditorFor(model => model.SetID)
    @Html.ValidationMessageFor(model => model.SetID)
</div>

and javascript is

var d = $("#ID ").val();
$("#SetID").val(d);  

or

$("#SetID").val($("#ID ").val());

Comments

0

You should use

@Html.EditorFor(model => model.ID, new {@id="someid"})

Then

$("#someid").val (someval)

3 Comments

I don't think you can do this as the second parameter of the EditorFor actually takes View data and not an anonymous object containing html attributes like TextBoxFor does. See stackoverflow.com/questions/3735400/… for more details.
Maybe you right , I am from mobile so I cant check, but I think one of the params should be ...
I was surprised that you couldn't set html attributes on EditorFor too, seems like a strange decision to make.
0

Try this

$("#someid").prop('checked', true); // for checked
$("#someid").prop('checked', false);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.