lottogame
홈
태그
미디어로그
위치로그
방명록
Programing
보장하는 방법
lottogame
2020. 5. 24. 10:47
반응형
보장하는 방법
양식 필드가 비활성화되면 제출됩니까?
사용자가 값을 수정할 수는 없지만 값이 여전히 양식과 함께 제출되므로 양식 선택 필드를 "읽기 전용"으로 표시하려고합니다.
disabled 속성을 사용하면 사용자가 값을 변경할 수 없지만 양식과 함께 값을 제출하지는 않습니다.
readonly 속성은 입력 및 텍스트 영역 필드에서만 사용할 수 있지만 기본적으로 내가 원하는 것입니다.
그 일을 할 수있는 방법이 있습니까?
내가 고려하고있는 두 가지 가능성은 다음과 같습니다. 선택을 비활성화하는 대신 모든 옵션을 비활성화하고 CSS를 사용하여 선택을 비활성화 된 것처럼 보이게 선택하십시오.
클릭 이벤트 핸들러를 제출 단추에 추가하여 양식을 제출하기 전에 사용 불가능한 드롭 다운 메뉴를 모두 사용할 수있게하십시오.
<select disabled = "disabled"> .... </ select> <
input type = "hidden"name = "select_name"value = "selected value"/> 여기서 select_name은 일반적으로 <select>에 부여 할 이름입니다.
다른 옵션.
<select name = "myselect"disabled = "disabled"> <option value = "myselectedvalue"selected = "selected"> 내 값 </ option> .... </ select> <input type = "hidden"name = " myselect "value ="myselectedvalue "/> 이제이 중 하나를 사용하면 사용중인 웹 서버에 따라 <select> 앞이나 뒤에 숨겨진 입력을 넣어야 할 수도 있습니다.
IIS를 사용하여 메모리가 제대로 작동하면 이전에 메모리를 배치하고 Apache를 사용하면 메모리를 나중에 배치합니다.
항상 그렇듯이 테스트가 핵심입니다.
필드를 비활성화 한 다음 양식을 제출하기 전에 활성화하십시오.
jQuery 코드 : jQuery (함수 ($) {$ ( 'form'). bind ( 'submit', 함수 () {$ (this) .find ( ': input'). prop ( 'disabled', false);} );});
나는 이것을위한 해결책을 찾고 있었고,이 스레드에서 해결책을 찾지 못했기 때문에 나는 내 자신을했다.
// jQuery 사용 $ ( '# selectbox'). focus (function (e) {$ (this) .blur ();});
간단하게, 당신이 초점을 맞출 때, 필드를 비활성화하는 것과 같이 필드를 흐리게하지만 실제로는 데이터를 보냅니다.
사용자가 이전 선택 상자를 기반으로 선택한 값을 변경하는 것을 허용하지 않기 위해 약간 다른 시나리오에 직면했습니다.
내가 결국 한 것은 $ ( '# toSelect') find ( ': not (: selected)'). attr ( 'disabled', 'disabled');를 사용하여 선택 상자에서 다른 모든 선택되지 않은 옵션을 비활성화하는 것입니다.
jQuery를 사용하지 않고 Tres가 제안한 동일한 솔루션 <form onsubmit = "document.getElementById ( 'mysel'). disabled = false;"
action = "..."method = "GET"> <select id = "mysel"disabled = "disabled"> .... </ select> <input name = "submit"id = "submit"type = "submit "value ="SEND FORM "> </ form> 이것은 누군가가 더 많이 이해하는 데 도움이 될 수 있지만, jQuery보다 더 유연하지는 않습니다.
선택 필드의 : input 선택기와 함께 작동하지 않습니다. jQuery (function () {jQuery ( 'form'). bind ( 'submit', function () {jQuery (this) .find ( ': disabled') ) .removeAttr ( 'disabled');});});
선택에서 <select class = "sel big"옵션을 비활성화하기 위해 다음 코드를 사용합니다.
id = "form_code"name = "code"readonly = "readonly"> <option value = "user_played_game"selected = "true"> 1 게임 </ option> <option value = "coins"disabled = ""> 2 개체 < / option> <option value = "event"disabled = ""> 3 개체 </ option> <option value = "level"disabled = ""> 4 개체 </ option> <option value = "game"disabled = "" > 5 Object </ option> </ select> // 옵션 선택 비활성화 $ ( 'select option : not (: selected)'). each (function () {$ (this) .attr ( 'disabled', 'disabled ');});
내가 찾은 가장 쉬운 방법은 양식에 연결된 작은 자바 스크립트 함수를 만드는 것입니다. function enablePath () {document.getElementById ( 'select_name').
disabled = "";
} 다음 양식으로 호출하십시오. <form action = "act.php"method = "POST"name = "form_name"onSubmit = "enablePath ();"> 또는 확인하는 데 사용하는 함수에서 호출 할 수 있습니다 양식 :) 제출하기 전에 줄을 추가하십시오.
$ ( "# XYZ"). removeAttr ( "disabled");
또는 일부 JavaScript를 사용하여 선택 이름을 변경하고 사용 안함으로 설정하십시오.
이렇게하면 선택이 계속 제출되지만 확인하지 않는 이름을 사용합니다.
입력이 비활성화되어있는 동안 데이터 필드에 값을 저장하는 빠른 (Jquery 전용) 플러그인을 채웠습니다.
이것은 필드가 .prop () 또는 .attr ()을 사용하여 jquery를 통해 프로그래밍 방식으로 비활성화되는 한 .val (), .serialize () 또는 .serializeArra ()로 값에 액세스하면 항상 비활성화 된 경우에도 값 :
) 뻔뻔한 플러그 : https://github.com/Jezternz/jq-disabled-inputs 가능한 해결책을 찾았습니다. 선택한 것을 제외한 모든 요소를 제거하십시오.
그런 다음 스타일을 비활성화 된 것으로 변경할 수도 있습니다.
jQuery 사용 : jQuery (function ($) {$ ( 'form'). submit (function () {$ ( 'select option : not (: selected)', this) .remove ();});});
Jordan의 솔루션을 기반으로, 유효하지 않은 선택과 동일한 이름과 동일한 값으로 숨겨진 입력을 자동으로 만드는 함수를 만들었습니다.
첫 번째 매개 변수는 id 또는 jquery 요소 일 수 있습니다.
두 번째는 "true"가 비활성화되고 "false"가 입력을 활성화하는 부울 선택적 매개 변수입니다.
생략하면 두 번째 매개 변수는 "enabled"와 "disabled"중에서 선택을 전환합니다.
function changeSelectUserManipulation (obj, disable) {var $ obj = (typeof obj === 'string')?
$ ( '#'+ obj) : obj;
비활성화 = 비활성화?
!! 비활성화 :! $ obj.is ( ': disabled');
if (disable) {$ obj.prop ( 'disabled', true) .after ( "<입력 유형 = 'hidden'id = 'select_user_manipulation_hidden _"+ $ obj.attr ('id ') + "'name = '"+ $ obj.attr ( 'name') + " 'value ='"+ $ obj.val () + " '>");
} else {$ obj.prop ( 'disabled', false) .next ( "# select_user_manipulation_hidden _"+ $ obj.attr ( 'id')). remove ();
}} changeSelectUserManipulation ( "select_id");
<select id = "example"> <option value = ""> 선택하십시오 </ option> <option value = "
반응형
공유하기
게시글 관리
lottogame
'
Programing
' 카테고리의 다른 글
쿠키가 만료되지 않도록 설정
(0)
2020.05.24
localhost에서 페이스 북 개발
(0)
2020.05.24
조기 반납이 다른 것보다 느린 이유는 무엇입니까?
(0)
2020.05.24
Android : 서비스에서 현재 포 그라운드 활동을 얻으려면 어떻게해야합니까?
(0)
2020.05.24
JavaScript에서 불변성이 중요한 이유는 무엇입니까?
(0)
2020.05.24
티스토리툴바