2013-07-29 3 views
0

Немного странного вопроса. У меня есть форма и внутри этой формы элементы управления - это div с событиями onClick, а не с кнопками. Я не могу использовать кнопки, поскольку я не могу использовать перезагрузку страниц, вместо этого я должен отправлять все данные с помощью ajax.найти форму id div в

Плюс половина кнопок просто увеличивает счетчики, ниже мой код. Как бы я идти об использовании JavaScript, чтобы найти форму ID, что элемент щелкнули в Так как пример:.

<form id="20"> 
    ... 
    <div onClick="doSomething(this)"> 
    ... 
</form> 

йоЗотеЬЫпд будет продолжать двигаться вверх уровней родителей или что-то подобное, пока он не найдет формы, а затем переменная будет иметь назначенный ей идентификатор формы.

<form id="50"> 
      <div class="image_container background"> 
       <div style="text-align:center; font-size:12px;">image1</div> 
       <input type="hidden" id="imgId" value="50" /> 
       <div class="image" style="background-image:url(images/image3.JPG);"></div> 
       <div class="selected_product"> 
        <span>KR</span> 
       </div> 
       <input type="hidden" id="applied_products" value="KR" /> 
      </div> 
      <div class="controls_container background"> 
       <div id="selected">KR</div> 
       <a class="button arrow expandProducts"> 
        <span> 
         <div class="products"> 
          <span>KR</span> 
          <span>A5</span> 
          <span>CC</span> 
         </div> 
        </span> 
       </a> 
       <hr /> 
       <span class="button plus" onClick="sale(this)"></span> 
       <input type="text" id="amount" disabled="disabled" value="0"/> 
       <span class="button minus"></span> 
       <hr /> 
       <input type="text" id="total" disabled="disabled" value="£0"/> 
      </div> 
     </form> 
+0

у вас нет JQuery? Только JavaScript? – FSou1

ответ

0

Вашей doSomething функции может продолжить навигацию через эти родитель до тех пор, пока не найдет форму, например, так:

function doSomething(elem) 
{ 
    var parent = elem.parentNode; 

    if(parent && parent.tagName != 'FORM') 
    { 
    parent = doSomething(parent); 
    } 

    return parent.id; 
} 

Кроме того, если вы используете <button type="button">...</button> это не вызовет обновление страницы, так как кнопка по умолчанию type является submit.

0

Если вы отправляетесь прямо javascript, а не jquery или какую-либо другую библиотеку. Каждый элемент DOM имеет parentNode Property

var elm = document.getElementById(yourDivId); 
var parent = elm.parentNode; 

Оттуда вы можете цикл через каждый родитель, пока вы не вернетесь к элементу формы, а затем вытащить идентификатор.

0

Как о чем-то вроде этого:

function handler(target) { 
    var parent = target.parentNode; 

    // loop until parent is a form or browser crashes :) 
    while (parent.tagName != 'FORM') { 
     parent = parent.parentNode; 
    } 

    var formId = parent.id; // the id you wanted 

    // do stuff 
} 
Смежные вопросы