2015-05-19 14 views
6

jak odróżnić javascript wyzwalane złożyć i ręcznie klikając forma przedstawienia
przykładowy kod poniżejjak odróżnić javascript złożyć i ręcznie klikając złożyć

function myfunction() 
{ 
    document.getElementById("id_searchform").submit(); 
    return true; 
} 

forma:

<div class='row'> 
    <div class='col-md-4'> 
     <div class='clszipcode' ><span>Enter Zipcode</span></div> 
    </div> 
    <div class='col-md-4'> 
     <div class='clstxtzipcode' ><input type="text" name="zip_code" id="txtZipcode"></div> 
    </div> 
    <div class='col-md-4'> 
     <div class='clsbtnzip' ><input type="submit" name="submit" id="btnSearch" value="Search" class="button_example" ></div> 
    </div> 
</div> 
<a href="#" onclick="return myfunction();" >click to submit</a> 
+1

Wiesz kiedy moja funkcja jest wywoływana jest wyzwalany javascript kliknij. – Riddler

+0

weź ukryte dane wejściowe i podaj inną wartość przy przesyłaniu JavaScript. tj. '' w zestawie javascript '... submittype.value = 'js'' –

+0

jeśli dołączę zdarzenie onclick do wywoła funkcję myfunction() i validate() – srinidhi

Odpowiedz

1

Pozwól mi zobaczyć, czy Rozumiem:

  1. Chcesz wykryć w hether użytkownik kliknął link, aby przesłać formularz.
  2. Chcesz wykryć, czy użytkownik kliknął przycisk przesyłania, aby przesłać formularz.
  3. Masz inną funkcję o nazwie validate(), która użyje tych informacji w jakiś sposób.

W takim przypadku należy rozważyć użycie zmiennej do zapisania, czy kliknięto link, przed aktywacją formularza do przesłania.

  1. Inicjalizacja zmienna globalna wasClicked do false
  2. Po kliknięciu linku ustawić wasClicked do true
  3. forma wyzwalania złożyć po wasClicked jest ustawiony.
  4. Run validate() gdy formularz jest składany
  5. Sprawdź if(wasClicked){...} w validate()

Oto Working Example

+0

A przy okazji, gdy JS nie jest włączony w przeglądarce, zdarzenie onsubmit nie uruchomi się. Następnie formularz nie jest zanieczyszczony ukrytymi danymi wejściowymi dla tego przypadku. – EtienneWan

Powiązane problemy