праверка HTML5, калі тып ўваходу не «ўявіць»

Я выкарыстоўваю HTML5 для праверкі палёў. Я адпраўка формы з дапамогай JavaScript на кнопку мышы. Але праверка HTML5 не працуе. Ён працуе толькі тады, калі тое тып ўваходу прадставіць . Ці можам мы зрабіць што-небудзь іншае, чым пры выкарыстанні праверкі JavaScript або зменай тыпу прадставіць ?

Гэта HTML-код:

<input type="text" id="example" name="example" value="" required>
<button type="button"  onclick="submitform()" id="save">Save</button>

Я адпраўка формы ў функцыі SubmitForm() .

48

8 адказы

Працэс валідацыю формы HTML5 абмяжоўваецца сітуацыямі, калі форма уяўляецца з дапамогай кнопкі адпраўкі. Алгарытм прадстаўлення формы ў прама кажа, што праверка не выконваецца калі форма перадаецца праз адправіць() <�код /> метад. Па-відаць, ідэя заключаецца ў тым, што калі вы адправіце форму з дапамогай JavaScript, вы павінны зрабіць праверку.

Тым не менш, вы можаце запытаць (статычны) форма праверкі ў дачыненні да абмежаванняў, вызначаных атрыбутаў HTML5, выкарыстоўваючы checkValidity() метад. Калі вы хочаце, каб адлюстраваць адны і тыя ж паведамленні пра памылкі, як браўзэр будзе рабіць у праверцы формы HTML5, я баюся, што вы павінны праверыць усе палі абцяжаранай, так як validityMessage ўласцівасць з'яўляецца уласцівасцю палёў (кантроль), а не ў форме. У выпадку аднаго абмежаванага поля, як і ў выпадку, прадстаўленым, гэта трывіяльна вядома:

function submitform() {
  var f = document.getElementsByTagName('form')[0];
  if(f.checkValidity()) {
    f.submit();
  } else {
    alert(document.getElementById('example').validationMessage);
  }
}
69
дададзена
@HTMLDeveloper, вы павінны прадставіць вашу праблему, з кодам, як новае пытанне (і сфармуляваць яго больш падрабязна - я сапраўды не магу бачыць, што вы просіце тут).
дададзена аўтар Jukka K. Korpela, крыніца
мы можам выкарыстоўваць дзве кнопкі ў адной форме ён паказвае памылкі палі абавязковыя для запаўнення апавяшчэння для абедзвюх кнопак чаму? як вырашыць?
дададзена аўтар Web Designer cum Promoter, крыніца
Дзякуй за просты прыклад і тлумачэнне, гэта працуе для мяне. <�Код> абвесткі можа быць спрошчана да абвесткі (f.validationMessage); ва ўзоры кода ў выпадку, калі вы абхопу праз :-)
дададзена аўтар Mycah, крыніца

Я можа быць позна, але так, як я зрабіў гэта, каб стварыць схаваны падаць ўваходны сігнал, і назваўшы яго клікні апрацоўшчык, на кнопку. Нешта падобнае (з выкарыстаннем jQuery для прастаты):

<input type="text" id="example" name="example" value="" required>
<button type="button"  onclick="submitform()" id="save">Save</button>
<input id="submit_handle" type="submit" style="display: none">

<script>
function submitform() {
    $('#submit_handle').click();
}
</script>
13
дададзена
Гэта працуе для мяне, але, як я выявіць у кодзе, што праверка не атрымаецца? Гэта таму, што я хачу, каб перапыніць захаваць функцыянальнасць у выпадку недапушчальнага поля. дзякуй
дададзена аўтар freedeveloper, крыніца

Вы павінны выкарыстоўваць тэг формы, які ахоплівае свае ўваходы. І тып ўваходу ўявіць.
Гэта працуе.

<form id="testform">
<input type="text" id="example" name="example"  required>
<button type="submit"  onclick="submitform()" id="save">Save</button>
</form>

З HTML5 валідацыю працуе толькі з кнопкі адпраўкі, вы павінны трымаць яго там. Вы можаце пазбегнуць адпраўкі формы, хоць, калі дзейнічае, прадухіляючы дзеянне па змаўчанні, напісаўшы апрацоўшчык падзеі формы.

document.getElementById('testform').onsubmit= function(e){
     e.preventDefault();
}

Гэта дасць вашай праверкі, калі несапраўдным і не будзе прадстаўляць форму, калі дзейнічае.

8
дададзена
Тое, што я did.There гэта форма tag.I спытаў, ці ёсць спосаб, акрамя выкарыстання кнопкі адпраўкі
дададзена аўтар I'm nidhin, крыніца

Try with <button type="submit"> you can perform the functionality of submitform() by doing <form ....... onsubmit="submitform()">

5
дададзена
@ Ahmed.This не будзе працаваць у маім case.if тыпу кнопкі прадставіць валідацыю HTML5 будзе work.But У мяне ёсць шмат іншых Js валідацыю і таму вяртанне ілжывае не будзе працаваць, калі тып кнопкі адправіць
дададзена аўтар I'm nidhin, крыніца
ды яго адпраўкай формы без выканання іншых валідацыю
дададзена аўтар I'm nidhin, крыніца
<�Код> SubmitForm() павінен працаваць у выглядзе тэга. якая памылка, якую вы бачыце ў кансолі або яго проста запоўніўшы форму без выканання іншых валідацыю?
дададзена аўтар Ahmed, крыніца
то яго лепш выканаць тэкставага поля валідацыю ў SubmitForm() у html5 ў патрабуецца працуе з кнопкі адпраўкі
дададзена аўтар Ahmed, крыніца

HTML5 Праверка працы толькі пры кнопочного тыпу будзе прадстаўляць

змяніць -

<button type="button"  onclick="submitform()" id="save">Save</button>

To -

<button type="submit"  onclick="submitform()" id="save">Save</button>
3
дададзена

Either you can change the button type to submit

<button type="submit"  onclick="submitform()" id="save">Save</button>

Ці вы можаце схаваць кнопку адпраўкі, трымаць іншую кнопку з «кнопкай» тыпу = і мець для гэтай кнопкі мышы падзеі

<form>
    <button style="display: none;" type="submit" >Hidden button</button>
    <button type="button" onclick="submitForm()">Submit</button>
</form>
3
дададзена

Паспрабуйце гэта:

<script type="text/javascript">
    function test
    {
        alert("hello world");  //write your logic here like ajax
    }
</script>

<form action="javascript:test();" >
    firstName : <input type="text" name="firstName" id="firstName" required/>
lastName : <input type="text" name="lastName" id="lastName" required/>
email : <input type="email" name="email" id="email"/>
<input type="submit" value="Get It!" name="submit" id="submit"/> </form>
2
дададзена

Я хацеў бы дадаць новы спосаб зрабіць гэта, што я толькі нядаўна сутыкнуўся. Нават калі форма праверкі не працуе, калі вы адправіце форму, выкарыстоўваючы адправіць() метад, то нічога не перашкаджае вам, націснуўшы кнопку адпраўкі праграмна. Нават калі ён скрыты.

Маючы форму:

<form>
    <input type="text" name="title" required />
    <button style="display: none;" type="submit" id="submit-button">Not Shown</button>
    <button type="button" onclick="doFancyStuff()">Submit</button>
</form>

Гэта выкліча форму праверкі:

function doFancyStuff() {
    $("#submit-button").click();
}

Або без JQuery

function doFancyStuff() {
    document.getElementById("submit-button").click();
}

У маім выпадку, я раблю кучу праверкі і разлікі, калі падробленая кнопка адпраўкі націскаў, калі мая ручная праверка трывае няўдачу, то я ведаю, што можа праграмна націснуць ўтоеную кнопку і адправіць форму дысплея праверку.

Вось вельмі просты jsfiddle якая дэманструе паняцце:

https://jsfiddle.net/45vxjz87/1/

1
дададзена
Калі ласка, прачытайце пытанне «Ці можам мы зрабіць што-небудзь іншае, чым пры выкарыстанні праверкі JS або змены тыпу ўявіць?»
дададзена аўтар I'm nidhin, крыніца