提交函数上的Sharepoint不会被调用

时间:2017-11-21 08:31:12

标签: javascript forms sharepoint addeventlistener preventdefault

我有一个工作表单,带有一个POST方法,可以将在JSON中解析的值发送到外部网站。但是,如果我在Sharepoint上托管表单,它将无法工作。

我必须使用div包装表单,因为sharepoint不希望getElementsByClassName只包含表单标记。

现在我停留在提交按钮的addEventListener函数中,该按钮不执行 handleFormSubmit 。控制台显示没有错误。

HTML(缩短):

<div id="formAbc">
    <form class="content__form abc">
        <div class="abc__input-group">
            <label class="abc__label" for="iNumber">iNumber</label>
            <input class="infrastruktur__input infrastruktur__input--text" id="iNumber" name="iNumber" type="text"/>
        </div>
        <div class="abc__input-group">
            <label class="abc__label" for="machineName">machineName</label>
            <input class="abc__input abc__input--text" id="machineName" name="machineName" type="text"/>
        </div>
        <button class="abc__button" type="submit">Absenden</button>
    </form>
</div>

使用Javascript: 的addEventListener:

const Formtest = document.getElementById('formAbc');
console.log(Formtest);
Formtest.addEventListener('submit', handleFormSubmit);

handleFormSubmit:

const handleFormSubmit = event => {
  event.preventDefault();
  console.log("default prevented");
 /// handling Data
};

还测试了我的所有javascript包装

document.onreadystatechange = function () {
    if (document.readyState == "interactive") {
       //code
   }
}

Sharepoint是否接受'submit'处理的事情,我是否需要在按钮上创建onclick()事件或者我在其他地方是否有错误?

1 个答案:

答案 0 :(得分:0)

问题似乎是<form>标记,因为Sharepoint不允许在CEWP中使用这些标记。 我通过使用<fieldset>标记解决了这个问题,解决了所有问题。

<fieldset>
 ....
</fieldset>

虽然您可以将costum标记用作<myform>,但这会中断form.elements并且无效。