提交表单之前的jquery
我有一个列表(一个简单列表),我可以从中选择和设置元素(使用js),然后是一个表单,允许我选择多少个元素以及一个提交表单。如果没有选择一个元素,那么会有一个引发异常的脚本。问题是,我希望表单不提交,如果没有选择一个元素,但不抛出一个异常,但向我展示一个消息提交按钮(使用jQuery)。我下面的脚本:提交表单之前的jquery
<? foreach ($types as $type):?>
<ul class = "product_types">
<? if ($type->stock_2 > 0):?>
<li id = 'product_types'><a href="#" onclick='selecteazaElement(<?= $type->id; ?>,<?= $type->stock_2; ?>);'><?= $type->label; ?></a></li>
<? else: ?>
<li id = 'product_unavailable_types'><label><?= $type->label; ?></label></li>
<? endif; ?>
</ul>
<? endforeach; ?>
<form name="addtobasket" method="POST" action="<?= Route::url('Add to Basket', array('sale_id' => $sale->id)); ?>">
<input type="hidden" name="idOfSelectedItem" id="idOfSelectedItem" value="-1">
<select name="number" id="number">
<option value=0>Alege numarul de produse</option> </select>
<button type="submit" name = "submit" onclick="addtobasket";>Adauga in cos</button><br />
</form>
和设置列表元素的JS:
<script type="text/javascript">
function selecteazaElement(id,stock)
{
document.addtobasket.idOfSelectedItem.value=id;
window["canSubmit"] = true;
var number23=document.addtobasket.number;
number23.options.length=0;
if (stock>=6)
stock=6;
for (i=1;i<=stock;i++)
{
//alert ('id: '+id+'; stock: '+stock);
number23.options[number23.options.length]=new Option(i, i);
}
//window.status="my status";
}
添加submit
监听到窗体。提交时,请检查是否选择了某个元素,如果不是,则可以使用return false
阻止提交。这里有一个例子:
而这里的HTML:
<form id="myForm">
<input type="text"/>
<input type="submit"/>
</form>
如果你不想使用jQuery,你也可以用普通的JavaScript处理提交事件,像这样:
var myform = document.getElementById('myForm');
myform.addEventListener('submit', function() { console.log('Submitted!'); return false; });
如果我添加最简单的事件侦听器的形式(只是为了检查它是否工作,我可以;吨设法得到它的工作...)代码:我已经在表单中添加了一个id。 – dana 2011-05-02 08:03:30
你有jQuery包括?这个答案使用了你没有在你的问题中使用的jQuery。 – 2011-05-02 13:21:00
我在我给的HTML上测试了我的代码,它工作正常。你使用了你给我看的确切代码吗?另外,试着运行这个来看看你是否选择了正确的形式:'console.log($('#addtobasket'));'。 – theabraham 2011-05-02 13:21:42
JavaScript在浏览器中看到并呈现的html上。你可以发布该页面的相关html(查看源代码)? – 2011-05-01 22:21:34
嗯..想法是:我只是想添加一个jQuery的事件监听器到该窗体。因此,如果我尝试在没有从列表中选择一个事件的情况下提交它,就会出现一个消息,而不是不提交表单......它可以是possbile吗?谢谢! – dana 2011-05-02 08:05:54
我想看到一些呈现的html输出以及 – netbrain 2011-05-02 09:50:04