提交表单之前的Jquery

| 我有一个列表(一个简单的列表),我可以从中选择和设置元素(使用js),然后有一个表单,可以让我选择我想要的元素数量,以及一个提交表单。如果选择一个元素,则存在一个引发异常的脚本。问题是,我希望表单不提交,如果未选择元素,但不引发异常,而是向我显示一条消息(使用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\";
}
    
已邀请:
在表单中添加一个“ 2”侦听器。提交后,请检查是否已选择一个元素,如果未选中,则可以使用
return false
阻止提交。这是一个例子:
$(\'#myForm\').submit(function()
{
    if (/* test case not true */) { 
        $(\'#myError\').show();
        return false; 
    }

    // ... continue work
});
这是HTML:
<form id=\"myForm\">
    <input type=\"text\"/>
    <input type=\"submit\"/>
</form>
如果您不想使用jQuery,也可以使用普通JavaScript处理Submit事件,如下所示:
var myform = document.getElementById(\'myForm\');
myform.addEventListener(\'submit\', function() { console.log(\'Submitted!\'); return false; });
    

要回复问题请先登录注册