2014-09-30 5 views
-1

У меня есть форма с элементами форм, например следующим образом:JQuery изменить все атрибуты в форме к чему-то еще

@using (Html.BeginForm("Edit", "UserProfile", FormMethod.Post, new { id = "EditUserForm", @class = "form-horizontal form-bordered" })) 
{ 

    <div class="form-group"> 
     @Html.LabelFor(m => m.Email, new { @class = "col-sm-4 control-label" }) 
     <div class="col-sm-8"> 
      @Html.TextBoxFor(m => m.Email, new { @class = "form-control", type = "text", @readonly = "readonly" }) 
     </div> 
    </div><!-- form-group --> 

    <div class="form-group"> 
     @Html.LabelFor(m => m.Name, new { @class = "col-sm-4 control-label" }) 
     <div class="col-sm-6"> 
      @Html.TextBoxFor(m => m.Name, new { @class = "form-control", type = "text", @readonly = "readonly" }) 
     </div> 
    </div><!-- form-group --> 

} 

Я хочу использовать JQuery для перебора всех элементов в форме и изменить/удалить readonly Атрибут. Когда я нажимаю кнопку/элемент.

как мне это сделать. Я знаю только, как изменить атрибут одного элемента, который я знаю?

html is for Razor view.

+0

Гораздо лучше предоставить визуализированный HTML, если вопрос касается только стороны клиента. – Regent

+0

Мой код также будет работать для этого вопроса @zapnologica –

ответ

2

Вы можете использовать:

$(function() { 
    $('#EditUserForm [readonly]').prop('readonly', false); 
}); 
1

Поскольку в вашей форме есть только поля ввода.

попробовать что-то вроде этого:

$('input[readonly]').removeAttr('readonly'); 

ИЛИ

$('#EditUserForm input[readonly]').removeAttr('readonly'); 

Working Demo

+0

Да, теперь это выглядит хорошо. Трудно понять HTML-код OP, но я думаю, что это то, что требуется, +1. – Regent

+1

@ Regent..yes OP использует серверную технологию 'Asp.Net MVC'..all..' @ Html.TextBoxfor()' будет генерировать простые текстовые поля ... –

1

FIDDLE

$(".form-group input[type=text").each(function(){ 
     var attr=$(this).attr('readonly'); 
     if(typeof attr !==typeof undefined || attr!==false) 
      $(this).removeAttr('readonly'); 
    }); 
+1

'typeof attr! == typeof undefined' can упростить в 'attr! == undefined'. – Regent

+0

Да, но это самый точный способ права. –

+0

Нет, это просто лишние символы. '! ==' сравнивает поиск типа операндов, а '! =' смотрит только на значения, преобразуя их в один тип. – Regent