Aipoのformでsubmit時にボタンをdisableにする

@iwasaki 280views 更新:2014年6月17日
aimluck.io.disableForm = function (form, bool) {
  function S4() {
    return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
  }

  function guid() {
    return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4()
      + S4() + S4());
  }

  if (form == null) {
    return;
  }

  if (bool) {
    var elements = form.elements;
    for (var i = 0; i < elements.length; i++) {
      if ((elements[i].type == 'submit' || elements[i].type == 'button')
        && elements[i].style.display != "none") {
        var uuid = guid();
        var span = document.createElement("span");
        span.id = uuid;
        span.className = elements[i].className;
        span.style.display = elements[i].style.display;
        elements[i].parentNode.insertBefore(span, elements[i]);
        span.appendChild(document.createTextNode(elements[i].value))
        dojo.addClass(span, "auiButtonDisabled");
        elements[i].style.display = "none";
        dojo.addClass(elements[i], uuid);
      }
    }
  } else {
    var spans = dojo.query(".auiButtonDisabled", form);
    for (var i = 0; i < spans.length; i++) {
      var uuid = spans[i].id;
      var element = dojo.query("." + uuid)[0];
      dojo.removeClass(element, uuid);
      element.style.display = spans[i].style.display;
      spans[i].parentNode.removeChild(spans[i]);
    }
  }
}

submit,buttonタグをすべてspanタグに置き換えています。

iPhoneなどではCSSでdisabledのボタンのデザインの制御ができないため、spanタグに置き換えています。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません