【问题标题】:javascript not showing properly in safarijavascript 在 safari 中未正确显示
【发布时间】:2011-04-17 18:45:55
【问题描述】:

我有一个 javascript 代码,它设置了可以选择的最大数量,以及我使用它的形式。

问题是,在 Safari 浏览器中,我实际上无法添加产品(无法提交表单) 知道为什么吗?谢谢 !我把代码放在下面:

<script type="text/javascript"> 
function selecteazaElement(id,stock)
{
    document.addtobasket.idOfSelectedItem.value=id;
    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";
} 
</script> 

我在这里使用它:

   <? 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 id="addtobasket" 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 />    
</fieldset>
 </form>

【问题讨论】:

  • valbutton 的代码在哪里,它不属于提交按钮,也从不将表单元素命名为“提交”
  • 没有错误。我根本无法将对象添加到篮子中。当我按下提交按钮时它不会提交。
  • @Dana:请贴出相关代码。您发布的代码不会被表单代码调用 - 我猜您可能会尝试在提交事件中调用提交
  • 在这个问题中也没有调用它stackoverflow.com/questions/5540658/…
  • 在表单中调用。它是jQuery。查看表单的 ID

标签: javascript forms browser safari conflict


【解决方案1】:

新错误:

Error: $(".social").jsocial is not a function
Source File: /sales
Line: 184

我没有很多要添加的项目: 产品的产量

所以如果服务器需要一个数量,它不会得到它,这就是为什么我认为你会抛出那个可怕的错误

如果你需要 addtobasket,你没有正确调用它

<button ;="" onclick="addtobasket" name="submit" type="submit">Adauga in cos</button>

旧错误

Error: syntax error
Source File: /sales
Line: 194, Column: 4
Source Code:

    }); 

您需要从 &lt;/script&gt; 之前删除上述内容

然后当我点击添加到购物篮时,我收到了我已经为您发布的旧错误:

Error: missing ) after argument list
Source File: /sale/1009/category/52/product/169
Line: 1, Column: 20
Source Code:
valbutton(addtobasket

哪条线

&lt;button type="submit" name = "submit" onclick="valbutton(addtobasket");&gt;Adauga in cos&lt;/button&gt;&lt;br /&gt;

应该是

&lt;button type="submit" name = "submit" onclick="valbutton(addtobasket)"&gt;Adauga in cos&lt;/button&gt;&lt;br /&gt;

假设您在任何地方都有function valbutton()

我还看到您多次加载了脚本,并且同一脚本的不同版本 - 您必须解决这个问题:

° jquery.easing-1.3.pack.js
° jquery.easing.1.2.js

° coin-slider.js
° coin-slider.min.js

° paginator.js
° paginator.js

° slides.min.jquery.js
° slides.min.jquery.js

【讨论】:

  • 修复了这些,仍然无法在 safari 中工作(我还没有上传代码。问题出在那个小 javascript 中,我在其中设置了可以添加到购物篮中的最大产品数)虽然这是奇怪的原因它适用于所有其他浏览器
  • 当您点击一个标签(头痛、头晕等)时,这是一种产品类型。只有在您单击该标签后,您才能选择要添加的产品数量。还是不行:(
  • 在 Mac 上为我工作,Safari 5
【解决方案2】:

这是我的建议 - 由于我无法测试您的代码,因此不确定最终结果

<script type="text/javascript"> 
function selecteazaElement(id,stock) {
  document.addtobasket.idOfSelectedItem.value=id;
  var number23=document.addtobasket.number;
  number23.options.length=0;
  if (stock>6) stock=6;
  for (i=1;i<=stock;i++) {
    number23.options[number23.options.length]=new Option(i, i);
  }
  return false; // cancel the link
} 
function valbutton(theForm) {
 // I still do not know what this does
 if (something wrong) return false; // cancel the form
 .
 .
 return true; // allow form submission
}
</script> 

<li id = 'product_types'><a href="#" onclick='return selecteazaElement(<?= $type->id; ?>,<?= $type->stock_2; ?>);'><?= $type->label; ?></a></li>

<form id="addtobasket" name="addtobasket" onSubmit="return valbutton(this)" 
method="POST" action="<?= Route::url('Add to Basket', array('sale_id' => $sale->id)); ?>">
.
.
<input type="submit" value="Adauga in cos"/><br /> 
</form>

【讨论】:

  • @Dana - 请查看我的更改 - 我的所有更改。我要睡觉了
  • 谢谢你,我要去研究它们然后反馈给你!睡个好觉!:)
  • 不。我忘记了 valbutton 那里(我正在做一些测试)我已经用新形式编辑了我的代码,没有 valbutton(它没用)。仍然,不能在 safari 中工作
  • @Dana 我不能告诉你,如果你能发布一个 URL 和如何查看问题的描述
  • 好的,去这里:arpadia-dev.sinergetic.ro 用户:demo@jefbiz.com pass:paris 然后去这里:arpadia-dev.sinergetic.ro/sale/1009/category/52/product/169 选择一个产品并尝试提交表格。谢谢
猜你喜欢
  • 2016-01-15
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 2010-10-29
  • 2018-06-13
相关资源
最近更新 更多