매우 간단한 입력을 통해 호텔 예약 옵션 (날짜, 숙박 일 수, 어린이 수 등)을 수집하고 출발일은 ui-datepicker입니다.jQuery를 선택하여 제출하십시오.
jQuery를 사용하여이 데이터를 수집 한 다음 숨겨진 (제 3 자) 형식의 옵션에 해당하는 'selected'속성을 설정합니다. 이것은 모두 잘되고 있으며 DOM 요소가 변경되는 것을 볼 수 있습니다. 즉, 숨겨진 양식의 'selected'옵션이 변경되고 있습니다.
는 마지막 형태는 jQuery를 통해 다시 제출 :
$("form[name=idForm]").submit();
문제는 : 값이 '옵션이있다'는 DOM에서 확인 '을 선택하더라도 그래도 제출 양식에 의해 인식되지 않습니다.
코드 : 그래서
$(".check").click(function(){
$(".book_result").hide(); /* just to hide verification feedback*/
var date = $("#datepicker").val();
var nights = $("#book_nights").val();
var adults = $("#book_adults").val();
var children = $("#book_children").val();
var access_code = $("#book_access_code").val();
if (date=='no date selected'){
//all the code for verifying the users' input...
return;
}
else {
var newDate = date.split(' - ');
var day = parseInt(newDate[0]-1);
var month = parseInt(newDate[1]-1);
var year = parseInt(newDate[2]);
var nights = nights - 1;
var adults = adults - 1 ;
var children = children - 1;
if (nights < 0){nights=0};
if (adults < 0){adults=0};
if (children < 0){children=0};
$("#fromday option").eq(day).attr("selected", "selected");
$("#frommonth option").eq(month).attr("selected", "selected");
$("#fromyear option").eq(year).attr("selected", "selected");
$("#nbdays option").eq(nights).attr("selected", "selected");
$("#adulteresa option").eq(adults).attr("selected", "selected");
$("#enfantresa option").eq(children).attr("selected", "selected");
$("#fromday option").eq(day).siblings().removeAttr("selected");
$("#frommonth option").eq(month).siblings().removeAttr("selected");
$("#fromyear option").eq(year).siblings().removeAttr("selected");
$("#nbdays option").eq(nights).siblings().removeAttr("selected");
$("#adulteresa option").eq(adults).siblings().removeAttr("selected");
$("#enfantresa option").eq(children).siblings().removeAttr("selected");
$("#AccessCode").val(access_code);
$("form[name=idForm]").submit();
}
, 모든 정말 간단합니다 - 그것은 작동하지 않습니다와 나는 그것을 :(에 거의 이일을 잃었다 제외
그것은 인식하지 않는 페이지처럼 숨겨진 타사 양식의 선택이 변경되었습니다. DOM 제출시 양식 제출이 DOM의 태그를 읽지 않을 것으로 생각 했습니까?
도움이 될 것입니다. 나는 정말로 같은 상황을 발견하지 못한다. m은 jquery를 통해 조작 된 다음 제출됩니다.
정확히 작동하지 않는 항목은 무엇입니까? 양식 제출에 의해 인식되지 않는 값은 무엇입니까? 보다 정확한 세부 정보를 제공하십시오. –
@Shadow Wizard - 제출시 양식은 분명히 양식의 'action'속성에서 spec'ed 파일을 호출하고 있습니다. 결과 쿼리 문자열은 DOM에서 'selected'로 표시된 옵션 값을 갖지 않습니다. 단지 각 옵션의 첫 번째 옵션을 기본값으로 사용합니다. 그러므로 양식 제출은 DOM의 jquery 조작에 의해 'selected'값을 선택하지 않습니다 ... –
하 - 당신은 저를 때려 눕 힙니다! 난 단지 내 자신의 질문에 대답하는 것을 허락하지 않는다는 것을 발견하기 위해서만 대답을 타이핑했다. 나는 이것을 올리려고했다. OK - 그것을 분류했다 ... 문제는 다음과 같습니다. $ ("# fromday 옵션"). eq (일) .attr ("selected", "selected"); 실제로 HTML 선택 옵션의 'selected'속성이 조작되었지만 양식 제출에 의해 변경된 값으로 선택되지 않았습니다. 대신이 방법이 효과가있었습니다 ... $ ("# fromday") .val (day); 맨, 끝났습니다. 다행입니다! 초과 ... S –