MVC 앱이 있고 디스플레이의 일부로 내 페이지 중 하나에서 라디오 버튼 사용자 선택에 따라 두 부분 중 하나를 렌더링합니다. 이 비트는 모두 정상적으로 작동하지만 사용자 선택에 따라 컨트롤러로 전달되는 값을 설정하거나 재설정해야하는 기본 폼에 버튼이 있습니다.Jquery가 예상대로 속성을 업데이트하지 않습니다.
이 페이지 처음 viewtype을 렌더링@Html.GlobalModalAuthorizeButton("Upload Document", "Upload", "Documents", new { serviceUserId = Model.ServiceUser.Id, folderId = Model.CurrentFolderId, viewType = Model.ViewTypes.ToString() }, new { @class = "icon upload btn-primary" })
는 사용자가 처음으로 제시하는 기본보기로 설정됩니다로 버튼은 내 주요 양식에 선언됩니다. 사용자가 뷰를 변경하면 뷰 유형이 업데이트 된 것처럼 보이지 않습니다. 그래서로드 된 부분에서 값을 올바른 값으로 설정하려고합니다. 나는 다음과 같은 경우 크롬 브라우저 개발자 도구를 사용하여 :
$(this).parent().parent().parent().parent().find($('.upload')).attr('data-url').replace('FileView', 'TreeView');
는 콘솔 창에 내가 원하는 값을 반환 (아이디어는 사용자가를 누르면 전에 내가 버튼 값을 설정이다). 문제는 위의 사실은 버튼의 data-url 속성을 변경 한 것처럼 보이지 않으므로 컨트롤러에 히트했을 때 'FileView'가 여전히 전달됩니다. 전체 속성에 대한
$ (이) .parent() 부모() 부모() 부모()를 찾을 수 있습니다 ($를 ('업로드 ')). attr ('data-url ','TreeView '); 속성을 'TreeView'로 변경하려면이 방법을 사용하십시오. –
FileView 대신 TreeView 값을 원합니 까? @ 마이크가 빠르다, 그 대답이다! –
Mike는 맞습니다. 그러나 명확하지 않은 경우를 대비하여 : .attr는 요소의 값에 대한 참조를 제공하지 않고 현재 값을 제공합니다. 값을 읽을 필요가 있다고 제안 할 때 곧바로 덮어 쓰지 않는 한 수정 한 다음 다시 쓸 수 있습니다. 제쳐두고, 많은 부모님의 일을하는 더 좋은 방법을 생각해 낼 수 있습니까? 예 : 찾고있는 클래스에 클래스를 추가하고이를 찾는 단일 부모 호출을 수행하십시오. – Rup