关联文章,双击到目的框错误,js问题,错在哪

2016-07-07 15:36 来源:www.chinab4c.com 作者:ecshop专家


  1. <tr>
  2. <td width="45%">
  3. <select name="source_select" size="20" style="width:100%" multiple ondblclick="sz4.addItem(false, 'add_brands_article', brandId)">
  4. </select>
  5. </td>

  6. <td align="center">
  7. <p><input type="button" value=">>" onclick="sz4.addItem(true, 'add_brands_article', brandId)" class="button" /></p>
  8. <p><input type="button" value=">" onclick="sz4.addItem(false, 'add_brands_article', brandId)" class="button" /></p>
  9. <p><input type="button" value="<" onclick="sz4.dropItem(false, 'drop_brands_article', brandId)" class="button" /></p>
  10. <p><input type="button" value="<<" onclick="sz4.dropItem(true, 'drop_brands_article', brandId)" class="button" /></p>

  11. </td>
  12. </td>
  13. <td width="45%">
  14. <select name="target_select" size="20" style="width:100%" multiple ondblclick="sz4.dropItem(false, 'drop_brands_article', brandId)">
  15. {foreach from=$articles_list item=article}
  16. <option value="{$goods_article.article_id}">{$article.title}</option>
  17. {/foreach}
  18. </select>
  19. </td>
  20. </tr
复制代码
  1. var brandId = {$brand.brand_id};
  2. var elements = document.forms['theForm'].elements;
  3. var sz4 = new SelectZone(1, elements['source_select'], elements['target_select'], '');
复制代码
上边是后台关联文章的代码。想添加选择项(双击文章就到目的框中),可是js总不行,不知道是什么原因

  1. function SelectZone()
  2. {
  3. this.filters= new Object();
  4. this.id= arguments[0] ? arguments[0] : 1;// 过滤条件
  5. this.sourceSel = arguments[1] ? arguments[1] : null;// 1 商品关联 2 组合、赠品(带价格)
  6. this.targetSel = arguments[2] ? arguments[2] : null;// 源select 对象
  7. this.priceObj= arguments[3] ? arguments[3] : null;// 目标 select 对象
  8. this.filename= location.href.substring((location.href.lastIndexOf("/")) + 1, location.href.lastIndexOf("?")) + "?is_ajax=1";
  9. var _self = this;
  10. 。。。
  11. /**
  12. * 添加选中项
  13. * @parambooleanall
  14. * @paramstringact
  15. * @parammixarguments其他参数,下标从[2]开始
  16. */
  17. this.addItem = function(all, act)
  18. {
  19. if (!this.check())
  20. {
  21. return;
  22. }

  23. var selOpt= new Array();

  24. for (var i = 0; i < this.sourceSel.length; i ++ )
  25. {
  26. if (!this.sourceSel.options.selected && all == false) continue;
  27. if (this.targetSel.length > 0)
  28. {
  29. var exsits = false;
  30. for (var j = 0; j < this.targetSel.length; j ++ )
  31. {
  32. if (this.targetSel.options[j].value == this.sourceSel.options.value)
  33. {
  34. exsits = true;
  35. break;
  36. }
  37. }
  38. if (!exsits)
  39. {
  40. selOpt[selOpt.length] = this.sourceSel.options.value;
  41. }
  42. }
  43. else
  44. {
  45. selOpt[selOpt.length] = this.sourceSel.options.value;
  46. }
  47. }
  48. if (selOpt.length > 0)
  49. {
  50. var args = new Array();
  51. for (var i=2; i<arguments.length; i++)
  52. {
  53. args[args.length] = arguments;
  54. }
  55. Ajax.call(this.filename + "&act="+act+"&add_ids=" +selOpt.toJSONString(), args, this.addRemoveItemResponse, "GET", "JSON");
  56. }
  57. }
  58. }
复制代码
上边是selectzone.js
wenti.jpg

回答:
用原始文件。覆盖他。

我想自己添加一个品牌关联文章的,双击不行啊

那你没有把 JS包含进去。。。包含足够的JS

程序出错了

学习了。