Tengo 2 formularios en mi código html, pero cuando voy a presionar el botón de form2, se envía el valor de form1
function chk() { var text = document.getElementById('text').value; console.log(text); return false; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <form id="form1"> <input type="text" id="text" value="Hi"> <input type="submit" id="submit1" onclick="return chk()"> <label for="submit1">Hi</label> </form> <form id="form2"> <input type="text" id="text" value="bonjour"> <button id="submit2" onclick="return chk()">btn</button> <label for="submit2">bonjour</label> </form>Los ID deben ser únicos en una página. En su lugar, puede utilizar un name para los elementos de entrada.
function chk(formId) { var text = document.getElementById(formId).querySelector('input[name=text]').value; console.log(text); return false; } <form id="form1"> <input type="text" name="text" value="Hi"> <input type="submit" id="submit1" onclick="return chk('form1')"> <label for="submit1">Hi</label> </form> <form id="form2"> <input type="text" name="text" value="bonjour"> <button id="submit2" onclick="return chk('form2')">btn</button> <label for="submit2">bonjour</label> </form>la identificación "texto" se usa dos veces en su código, lo que puede generar confusión, debe intentar cambiarlo a "texto1" y "texto2" y usar el que necesita en su función.