2014-12-01 3 views
0

У меня проблема, когда тег формы автоматически закрывается.Закрытие тега формы автоматически

Я пытаюсь выяснить, что именно вызывает проблему. Все, что находится внутри тега формы, добавляется после. Я использую netsuite, поэтому элементы находятся в таблицах, а также отлаживать их немного сложнее. Вот ссылка на сайт. T

Это (частично), что генерируется в браузере

> <div class="col-xs-8"> 
>  <div class="oos-button"></div> 
>   <form method="get" id="add-to-cart-form" role="form" action="/app/site/backend/additemtocart.nl"></form> 


<!-- MODAL --> etc... 

Но модальный код должен идти внутри формы, и это, как я закодирован его.

<form method="get" id="add-to-cart-form" role="form" action="/app/site/backend/additemtocart.nl"> 

<!-- MODAL -->   
    <div id="<%=getCurrentAttribute('item','itemID')%>" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true" > 
    <div class="modal-dialog"> 
    <div class="modal-content" style="padding:15px 15px; " > 
     <h2 class="page-title serif text-center "><@= meal.storedisplayname @></h2> 
     <div id="product-image" class="img-rounded"> 
      <img src="<@=meal.storedisplaythumbnail @>" class="img-responsive center" alt=""> 
      <br /> 
      <p><strong> <@= meal.storedisplayname @></strong>: added to cart</p> 
<label style="color:#7b9738"> Price: $<@= meal.onlineprice @></label> 
    <hr/> 
     <hr/> 
      <div class="text-center"> 
      <button type="button" class="btn btn-info center" data-dismiss="modal">Continue Shopping</button> 
      <a href="<%=getCartUrl()%>"> 
      <button type="button" class="btn btn-info center">Checkout ></button> 
      </a> 
      </div> 
     </div> 
    </div> 
    </div> 
</div> 
       <!-- END MODAL--> 
           <%= getCurrentAttribute('item','addtocartitemid')%> 
          <input type="text" class="qty form-control" name="qty" placeholder="Qty" value="1" /> 
          <input type="hidden" name="showcart" value="T" /> 
          <button type="submit" class="btn btn-info btn-block">Add to Cart</button> 
         </form> 
+1

У вас есть несколько форм, вложенные в форму. Это недействительный HTML, и в конечном итоге это приведет к неожиданному поведению в зависимости от браузера (из прошлого опыта, хотя все могло измениться). Исправляя эту проблему, вы можете решить эту проблему. –

ответ

2

Некоторые браузеры нуждаются в объекте <form> для открытия и закрытия в пределах одного и того же родителя. В вашем случае вы открываете форму в пределах <tr>, а затем закрываете ее в соседнем <tr>. Если вы исправите эту форму, она может исправить вашу другую проблему.

Не знаете, где в исходных файлах, но строки # 242-257 сгенерированного вывода по указанному вами URL-адресу.

<table border=0 cellspacing=0 cellpadding=0 width='100%'> 
<tr class='portletHandle' id='handle_itemMainPortlet' > 
<td width='100%' height=0 align='left' valign='top'> 
<table border=0 cellspacing=0 cellpadding=0 width='100%'> 
<tr> 
<td width=0 height=0 align='left' valign='top' style='display:none'> 
<form method='post' name='form0' id='form0' action='/s.nl'> 
<input type='hidden' name='c' value='3374347'> 
<input type='hidden' name='n' value='1'> 
<input type='hidden' name='sc' value='39'> 
<input type='hidden' name='category' value='13945'> 
<input type='hidden' name='id' value=''> 
<input type='hidden' name='it' value='A'> 
<input type='hidden' name='vid' value='RHCpZYbgAWoCAF5X'> 
<input type='hidden' name='ck' value='RHCpZYbgAVkCAEOd'> 
<input type='hidden' name='cktime' value='123014'> 
<input type='hidden' name='cart' value='-1'> 

</td> 
</tr> 
<tr> 
</form> 

, а должно быть:

<table border=0 cellspacing=0 cellpadding=0 width='100%'> 
<tr class='portletHandle' id='handle_itemMainPortlet' > 
<td width='100%' height=0 align='left' valign='top'> 
<table border=0 cellspacing=0 cellpadding=0 width='100%'> 
<tr> 
<td width=0 height=0 align='left' valign='top' style='display:none'> 
<form method='post' name='form0' id='form0' action='/s.nl'> 
<input type='hidden' name='c' value='3374347'> 
<input type='hidden' name='n' value='1'> 
<input type='hidden' name='sc' value='39'> 
<input type='hidden' name='category' value='13945'> 
<input type='hidden' name='id' value=''> 
<input type='hidden' name='it' value='A'> 
<input type='hidden' name='vid' value='RHCpZYbgAWoCAF5X'> 
<input type='hidden' name='ck' value='RHCpZYbgAVkCAEOd'> 
<input type='hidden' name='cktime' value='123014'> 
<input type='hidden' name='cart' value='-1'> 
<!-- Move here: --></form> 
</td> 
</tr> 
<tr> 
+0

Netsuite добавляет этот код на страницу автоматически, я не могу его редактировать. – Phreak

+0

Похоже, вам нужно связаться с Netsuite ... извините! –

+0

Мне кажется, что этот ответ привел меня по правильному пути, который мне пришлось обернуть тег td в контейнер div. Теги td являются обязательными в шаблонах внутренней ячейки netsuite. С этим я, к сожалению, должен работать. Спасибо – Phreak

1

Когда я смотрю на свой исходный код страницы ссылка вы предоставили, я не вижу закрывающий тег на одной и той же линии для этой формы (строка 293, ...), как вы утверждаете, в первом фрагменте. Это было бы странно, потому что это означало бы, что вы добавляете пустую форму. Я думаю, проблема здесь на стороне сервера ...

Я также заметил, что вы используете тот же самый идентификатор формы (add-to-cart-form) 9 раз на своей странице, что является недопустимым HTML, поскольку идентификаторы должны всегда быть уникальный. Вероятно, вы захотите пойти с классом, например, атрибут data-, или ваш javascript рано или поздно сработает.

+0

Что значит серверы? Не могли бы вы рассказать, что я думал об одном и том же, но я ударил по дорожке. – Phreak

+0

Я могу только сказать вам, что я вижу в браузере, и это явно не то, что вы ожидаете. Другими словами, сгенерированный HTML некорректен, поэтому вам нужно будет исправить там, где он создается, на сервере. – Pevara