2013-09-02 2 views
1

여러 양식이있는 웹 페이지가 있습니다. 내부에 "추가"단추가있는 양식을 찾은 다음 양식에 ID를 할당하려고합니다. 그러면이 명명 된 형식 ... input 요소 내에서 요소를 찾아 값을 할당해야합니다.특정 텍스트 값을 가진 버튼에 가장 가까운 양식을 찾는 방법

그래서 예를 들어, 나는 다음과 같은 테스트 HTML이 :

<H1>Add A Call Route</H1><DL> 
<form action="myapp/controller/addcallroute" method="POST"> 

<input class=" text" type="text" name="contact_details" value="" id="contact_details" > 

<input class=" hidden" type="hidden" name="rule_id" value="" id="rule_id" > 


<input class="submit" type="submit" name="submit" value="Add"> 

</FORM> 

여기에 내가 올바른 양식을 찾기 위해 사용하려고 코드의를 ..하고 여기에 ID를 할당합니다

var $callroute_form = $(":contains('Add')").closest("form"); 
    $callroute_form.attr('id',"callroute_form");   

콘솔에서 디버그하여 $ ("# callroute_form")의 값이 무엇인지 확인하려고하면 "[]"이 표시됩니다.

궁극적으로, "규칙 _id"필드에 값을 할당해야합니다. 하지만 여러 양식에 여러 개의 rule_id 필드가 있습니다 ... 또는 "Add"버튼을 찾아 가장 가까운 "rule_id"를 채우려 고합니다.

감사합니다.

+0

'$ (": contains ('Add')")'이것은 DOM의 모든 태그를 검사합니다. 매우 비효율적 인 필터. 이것을 이와 같이 사용하지 마십시오. –

답변

2

:contains 선택기는 값이 아닌 요소 내부 텍스트를 검색하므로 여기에 적합하지 않습니다.

:contains 문서부터 Attribute Equals Selector

var $callroute_form = $("input[value='Add']").closest("form"); 

을 시도해보십시오

는 선택을 포함

설명 :이 C 모든 요소를 ​​선택 지정된 텍스트를 유지합니다.

1

당신이 설명하는 방식으로 양식을 찾아 여기에 ID를 추가하려면 다음 값

// first method: 
$('input[value="Add"]').parent().attr('id',"callroute_form"); 

// second method: 
$('input[value="Add"]').closest('form').attr('id',"callroute_form"); 

이 양식의 요소를 찾으려면 편집 :

$('#callroute_form').find('input[name"rule_id"]').val('newvalue'); 
+0

OP와 마찬가지로'.closest'를 사용해야합니다. 부모를 사용하는 것도 HTML 구조와 결합되어 있습니다. – Itay

+0

조언 주셔서 감사합니다 :) – Andy

0

은 모든 형태의 선택을 입력 버튼을 기준으로 양식을 필터링 할 수 있습니다. 자, 당신이 그 폼으로하고 싶은 일을하십시오.

$('form').filter(function() { 
    return $(this).find("input[value='Add']").length == 1; 
}).attr('id', 'callroute_form')'; 
관련 문제