JS ile formu gönder

2 Cevap php

Im bir alışveriş sepeti eklentisi ile çalışan ve bu gibi fiyat, ürün adı, gibi değerleri göndermek için ürün sayfasında temel bir form kullanır. Sorun eklenti değerleri göndermek için Gönder düğmesini bir standart kullanır ve ben değiştirmek istiyorum olduğunu Daha güzel bir özel jquery rollover düğmesini dedi. Bunun gerçekleşmesi için bazı JS kullanılmış ve gönder düğmesine benim özel etrafında bir link attı:

<a href="#" onclick="document.forms[0].submit()" value="Add to Cart" onsubmit="return ReadForm(this, true);">
<img class="fade" src="style/img/add_btn.jpg" style="background: url(style/img/add_ro.png);" alt=""/>
</a> 

The form submits and the user is redirected to the homepage but the data in the form doesn't seem to get submitted and the product never gets added to the 'cart' page. I suspect that the form is getting submitted but I am failing to fire some additional JS function that submits the data. The plugin adds some JS to the top of the page:

<!--
//
function ReadForm (obj1, tst) 
{ 
// Read the user form
var i,j,pos;
val_total="";val_combo="";  

for (i=0; i<obj1.length; i++) 
{     
// run entire form
obj = obj1.elements[i];

// a form element
if (obj.type == "select-one") 
{   // just selects
if (obj.name == "quantity" ||
obj.name == "amount") continue;
pos = obj.selectedIndex;        // which option selected
val = obj.options[pos].value;   // selected value
val_combo = val_combo + "(" + val + ")";
}
}
// Now summarize everything we have processed above
val_total = obj1.product_tmp.value + val_combo;
obj1.product.value = val_total;
}
//-->

If you want to check out the the site in question, take a look here and click 'add to cart button': http://hardtopdepot.com/?p=34

You can see the cart at the top: http://hardtopdepot.com/?page_id=50

Herhangi bir yardım süper takdir-teşekkür olurdu!

2 Cevap

Bu sayfada iki biçimi vardır, şu anda arama formu olan, ilk teslim ediyoruz. OnClick değiştirin:

document.forms[1].submit()

Ayrıca, bir bir öğesi için onsubmit olay var, bu yüzden bağlantı basitçe olabilir:

<a href="#" onclick="document.forms[1].submit()" value="Add to Cart">
    <img class="fade" src="style/img/add_btn.jpg" style="background: url(style/img/add_ro.png);" alt=""/>
</a>

Edit: While this will fix what you're currently trying to do, bobince makes a very iyi bir nokta.

Bir düğme gibi davranır; bir düğme olarak bırakın. Bir bağlantı olarak işaretleme form gereksiz JavaScript olmadan kıracak demektir ve size istenmeyen bağlantı davranışını verir gibi orta-tıklayın-için-yeni-bir sekme veya imi için çalışıyor. Ayrıca vermeyebilir Enter-to-teslim Birden alanları ile bir form yapmak ama hiçbir düğmesi gönderin eğer çalışma.

Sadece bunu gibi bakmak istiyorum bir bağlantı veya ne olursa olsun gibi bakmak için düğmeye stil için CSS kullanabilirsiniz. background olarak değiştirin ve border ve padding çıkarmak.

Bu yaklaşım ile tek gerçek sorun IE (doğal olarak, IE) unremovable padding 1px ekler olmasıdır. Genellikle hedef CSS ile biraz etrafında çalışabilirsiniz. Eğer sadece basit bir resim istiyorsanız, alternatif olarak, bir <input type="image"/> kullanın. İşte bunun için orada ne var ve sadece herhangi bir diğer görüntü gibi bir rollover kullanabilirsiniz.