b2971f846a5f5bf45ebb42a11939b74ec5931c3e
max
  Mon Nov 21 04:56:36 2022 -0800
warn on empty input in hgPcr, refs #4713

diff --git src/hg/hgPcr/hgPcr.c src/hg/hgPcr/hgPcr.c
index 4caf82f..06e23dc 100644
--- src/hg/hgPcr/hgPcr.c
+++ src/hg/hgPcr/hgPcr.c
@@ -446,30 +446,33 @@
 printf("%s", "</TD>\n");
 
 printf("</TR></TABLE><BR>");
 
 printf("<TABLE BORDER=0 WIDTH=\"96%%\" COLS=4><TR>\n");
 printf("%s", "<TD><CENTER>\n");
 printf("Max Product Size: ");
 cgiMakeIntVar("wp_size", maxSize, 5);
 printf("%s", "</TD>\n");
 
 printf("%s", "<TD><CENTER>\n");
 printf(" Min Perfect Match: ");
 cgiMakeIntVar("wp_perfect", minPerfect, 2);
 printf("%s", "</TD>\n");
 
+jsOnEventById("click", "Submit", "if ($('#wp_r').val()==='' || $('#wp_f').val()==='') "\
+        "{ alert('Please specify at least a forward and reverse primer. Both input boxes need to be filled out.'); event.preventDefault(); }");
+
 printf("%s", "<TD><CENTER>\n");
 printf(" Min Good Match: ");
 cgiMakeIntVar("wp_good", minGood, 2);
 printf("%s", "</TD>\n");
 
 printf("%s", "<TD><CENTER>\n");
 printf(" Flip Reverse Primer: ");
 cgiMakeCheckBox("wp_flipReverse", flipReverse);
 printf("%s", "</TD>\n");
 printf("</TR></TABLE><BR>");
 
 printf("</FORM>\n");
 
 /* Put up a second form who's sole purpose is to preserve state
  * when the user flips the genome button. */