Hello friends i need help with onclick and onsubmit events

At the bottom of my page I have two button 1)save 2)submit.

When the user click on save button it will go to save_button.php page

When the user click on submit button it will go to submit_button.php but It will check the validation(i have function call validation) of the form and also it should prompt "are you sure want to continue"

Plz help me out

Here is the code

<html>
<body>

<script type="text/javascript">
function validate(form){
 var errors = [];
 
 if ( !checkRadioArray(form.science_soundness) ) {
  errors[errors.length] = "Please select grade for Scientific Soundness.";
 }
 
 if ( !checkRadioArray(form.relevance) ) {
  errors[errors.length] = "Please select grade for Relevance.";
 }
 
 if (errors.length > 0) {
  reportErrors(errors);
  return false;
 }
 
 return true;
}

function checkRadioArray(radioButtons){
 for (var i=0; i < radioButtons.length; i++) {
  if (radioButtons[i].checked) {
   return true;
  }
 }
 return false;
}

function reportErrors(errors){
 var msg = "You forget to select the grade.\n";
 var numError;
 for (var i = 0; i<errors.length; i++) {
  numError = i + 1;
  msg += "\n" + numError + ". " + errors[i];
 }
 alert(msg);
}
</script>

<link href="" rel="stylesheet" type="text/css" />
<form id="loginForm" name="loginForm" method="post" action="assign.php" onsubmit="return validate(this);">


<TABLE WIDTH="90%"  class="statement">
<TR bgcolor="#E0E0E0">
<TD WIDTH="30%" align="center" ><font size="3"><b>Category</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D</TD>
</TR>
<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Scientific</TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D" id="science_soundness"></TD>
</TR>

<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Relevance</b></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D"></TD>

</TR>
</table>
<TABLE WIDTH="100%" >
<tr align="center">
<input type="Submit" name="Submit" value="Save">
<input type="Submit" name="Submit" value="Submit" >
<input type="hidden" name="student_id" value="<?=$student_id?>">
<input type="hidden" name="f" value="<?=$f?>">
<input type="hidden" name="l" value="<?=$l?>">
</tr>
</form>
</body>
</html>

Dani AI

Generated

The problem here is not the validation logic itself but the way the buttons and form submission are wired. Common causes seen in the thread: using window.location.href (navigates away and never submits the form), using type="submit" for both buttons without telling the form which server endpoint to use, and naming a button submit/Submit which can shadow the form's submit() method in some browsers. Also remove duplicate id attributes on the radio inputs — id must be unique.

A robust, future-proof pattern is:

  • Give each button a distinct value (e.g. save / submit) and avoid the name submit.
  • Let the single form onsubmit handler run your existing validate(form) logic.
  • Detect which button triggered the submit (modern: event.submitter; fallback: track the last clicked button).
  • For the Submit button: run validation, then show confirm() and only proceed if both pass; set form.action to the correct server page before letting it submit.
  • For Save: set form.action to the save endpoint (and decide whether to skip client validation or not).

Example (re-uses your existing validate(form) function; this snippet shows the wiring only):

<form id="loginForm" method="post">
  <button type="submit" name="action" value="save" id="btnSave">Save</button>
  <button type="submit" name="action" value="submit" id="btnSubmit">Submit</button>
</form>

<script>
var lastClicked = null;
document.getElementById('btnSave').addEventListener('click', function(){ lastClicked = this; });
document.getElementById('btnSubmit').addEventListener('click', function(){ lastClicked = this; });

document.getElementById('loginForm').addEventListener('submit', function(e){
  var submitter = e.submitter || lastClicked;
  if (!submitter) return;
  if (submitter.value === 'save') {
    this.action = 'save_button.php';
    return; // allow submit (skip or include validation as you need)
  }
  // submit path: validate first, then confirm
  if (!validate(this)) { e.preventDefault(); return; }
  if (!confirm('Are you sure you want to continue?')) { e.preventDefault(); return; }
  this.action = 'submit_button.php';
});
</script>

Tiebacks and quick troubleshooting:

  • As showed, changing the form action before submitting is the right idea; prefer not to use window.location.href for submitting form data.
  • As suggested, ask confirmation after validation; the snippet above keeps those steps separate and explicit.
  • If validation still seems bypassed, open the browser console: a JS error (for example caused by a name collision like name="Submit") will stop your handlers. Also always re-validate on the server — client scripts are for UX only.

Recommended Answers

All 6 Replies

Hello friends i need help with onclick and onsubmit events

At the bottom of my page I have two button 1)save 2)submit.

When the user click on save button it will go to save_button.php page

When the user click on submit button it will go to submit_button.php but It will check the validation(i have function call validation) of the form and also it should prompt "are you sure want to continue"

Plz help me out

Here is the code

<html>
<body>

<script type="text/javascript">
function validate(form){
 var errors = [];
 
 if ( !checkRadioArray(form.science_soundness) ) {
  errors[errors.length] = "Please select grade for Scientific Soundness.";
 }
 
 if ( !checkRadioArray(form.relevance) ) {
  errors[errors.length] = "Please select grade for Relevance.";
 }
 
 if (errors.length > 0) {
  reportErrors(errors);
  return false;
 }
 
 return true;
}

function checkRadioArray(radioButtons){
 for (var i=0; i < radioButtons.length; i++) {
  if (radioButtons[i].checked) {
   return true;
  }
 }
 return false;
}

function reportErrors(errors){
 var msg = "You forget to select the grade.\n";
 var numError;
 for (var i = 0; i<errors.length; i++) {
  numError = i + 1;
  msg += "\n" + numError + ". " + errors[i];
 }
 alert(msg);
}
</script>

<link href="" rel="stylesheet" type="text/css" />
<form id="loginForm" name="loginForm" method="post" action="assign.php" onsubmit="return validate(this);">


<TABLE WIDTH="90%"  class="statement">
<TR bgcolor="#E0E0E0">
<TD WIDTH="30%" align="center" ><font size="3"><b>Category</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D</TD>
</TR>
<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Scientific</TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D" id="science_soundness"></TD>
</TR>

<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Relevance</b></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D"></TD>

</TR>
</table>
<TABLE WIDTH="100%" >
<tr align="center">
<input type="Submit" name="Submit" value="Save">
<input type="Submit" name="Submit" value="Submit" >
<input type="hidden" name="student_id" value="<?=$student_id?>">
<input type="hidden" name="f" value="<?=$f?>">
<input type="hidden" name="l" value="<?=$l?>">
</tr>
</form>
</body>
</html>

hi..
try this one..

<html>
<body>

<script type="text/javascript">
function validate(form){
 var errors = [];
 
 if ( !checkRadioArray(form.science_soundness) ) {
  errors[errors.length] = "Please select grade for Scientific Soundness.";
 }
 
 if ( !checkRadioArray(form.relevance) ) {
  errors[errors.length] = "Please select grade for Relevance.";
 }
 
 if (errors.length > 0) {
  reportErrors(errors);
  return false;
 }
 
 return true;
}

function checkRadioArray(radioButtons){
 for (var i=0; i < radioButtons.length; i++) {
  if (radioButtons[i].checked) {
   return true;
  }
 }
 return false;
}

function reportErrors(errors){
 var msg = "You forget to select the grade.\n";
 var numError;
 for (var i = 0; i<errors.length; i++) {
  numError = i + 1;
  msg += "\n" + numError + ". " + errors[i];
 }
 alert(msg);
}
</script>

<link href="" rel="stylesheet" type="text/css" />
<form id="loginForm" name="loginForm" method="post" action="assign.php" onsubmit="return validate(this);">


<TABLE WIDTH="90%"  class="statement">
<TR bgcolor="#E0E0E0">
<TD WIDTH="30%" align="center" ><font size="3"><b>Category</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D</TD>
</TR>
<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Scientific</TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D" id="science_soundness"></TD>
</TR>

<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Relevance</b></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D"></TD>

</TR>
</table>
<TABLE WIDTH="100%" >
<tr align="center">
<input type="Submit" name="Submit" value="Save" onClick="window.location.href='save_button.php'" >
<input type="Submit" name="Submit" value="Submit" onClick="window.location.href='submit_button.php'" >
<input type="hidden" name="student_id" value="<?=$student_id?>">
<input type="hidden" name="f" value="<?=$f?>">
<input type="hidden" name="l" value="<?=$l?>">
</tr>
</form>
</body>
</html>

Its not working. When i click on submit button or save button it goes to the assigned page if i have not entered the values. It shows that this values are compulsary but than it goes to the another page...

Even I want to show "are you sure" when people click on submit button

so i think in submit button following thing shuld happen
1)First should check validation
2)Second should ask "are you sure"
3)Third goes to the assigned page.

Try to help me out

*This was wrong, read the one bellow :(*

Replace

<input type="Submit" name="Submit" value="Save" onClick="window.location.href='save_button.php'" >

with

<input type="button" name="Save" value="Save" onClick="window.location.href='save_button.php'" >

What this creates is a button that does not submit the form just sends the user 2 the right page

Soz ill try that again
replace

<form id="loginForm" name="loginForm" method="post" action="" onsubmit="return validate(this);">

The action will be changed by our javascript then submitted,
Now change your buttons

<input type="Submit" name="Submit" value="Save">
<input type="Submit" name="Submit" value="Submit" >

With

<input type="button" name="Submit" value="Save" onclick="document.loginForm.action = 'save.php';  document.loginForm.submit();">
<input type="button" name="Submit" value="Submit" onclick="document.loginForm.action = 'submit.php';  document.loginForm.submit();" >

What happens is when they click save it changes the action to save.php and submits, the other changes the action to submit.php and submits. This means the form data will be sent to both pages.
Regards,
SR

<html>
<body>

<script type="text/javascript">
function validate(form){
 var errors = [];
 
 if ( !checkRadioArray(form.science_soundness) ) {
  errors[errors.length] = "Please select grade for Scientific Soundness.";
 }
 
 if ( !checkRadioArray(form.relevance) ) {
  errors[errors.length] = "Please select grade for Relevance.";
 }
 
 if (errors.length > 0) {
  reportErrors(errors);
  return false;
 }
 var boolOutput = confirm("are you sure");
 if(boolOutput) return true;
 else return false;
}

function checkRadioArray(radioButtons){
 for (var i=0; i < radioButtons.length; i++) {
  if (radioButtons[i].checked) {
   return true;
  }
 }
 return false;
}

function reportErrors(errors){
 var msg = "You forget to select the grade.\n";
 var numError;
 for (var i = 0; i<errors.length; i++) {
  numError = i + 1;
  msg += "\n" + numError + ". " + errors[i];
 }
 alert(msg);
}
</script>

<link href="" rel="stylesheet" type="text/css" />
<form id="loginForm" name="loginForm" method="post" action="assign.php" onsubmit="return validate(this);">


<TABLE WIDTH="90%"  class="statement">
<TR bgcolor="#E0E0E0">
<TD WIDTH="30%" align="center" ><font size="3"><b>Category</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>A-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>B-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>C-</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D+</TD>
<TD WIDTH="3%" align="center"><font size="3"><b>D</TD>
</TR>
<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Scientific</TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="A-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="B-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="C-" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D+" id="science_soundness"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="science_soundness" value="D" id="science_soundness"></TD>
</TR>

<TR bgcolor="D3E3E2">
<TD WIDTH="30%"><font size="2"><b>Relevance</b></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="A-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="B-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="C-"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D+"></TD>
<TD WIDTH="2%" align="center"><input type="radio" name="relevance"  id="relevance" value="D"></TD>

</TR>
</table>
<TABLE WIDTH="100%" >
<tr align="center">
<input type="Submit" name="Submit" value="Save">
<input type="Submit" name="Submit" value="Submit" >
<input type="hidden" name="student_id" value="<?=$student_id?>">
<input type="hidden" name="f" value="<?=$f?>">
<input type="hidden" name="l" value="<?=$l?>">
</tr>
</form>
</body>
</html>

check this.. and tell me

Soz ill try that again
replace

<form id="loginForm" name="loginForm" method="post" action="" onsubmit="return validate(this);">

The action will be changed by our javascript then submitted,
Now change your buttons

<input type="Submit" name="Submit" value="Save">
<input type="Submit" name="Submit" value="Submit" >

With

<input type="button" name="Submit" value="Save" onclick="document.loginForm.action = 'save.php';  document.loginForm.submit();">
<input type="button" name="Submit" value="Submit" onclick="document.loginForm.action = 'submit.php';  document.loginForm.submit();" >

What happens is when they click save it changes the action to save.php and submits, the other changes the action to submit.php and submits. This means the form data will be sent to both pages.
Regards,
SR

I tested this and it worked fine. If you have 2 submit buttons without changing the action it will submit to the same place whatever you do

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.