Pues te diré que tu estructura esta un tanto sobrecargada:
No creo que sea necesario tener un form dentro de otro y además que solo se une para contener un select.
Me atreveré a esquematizar algo parecido según lo que creo una vez ejecuto tu formulario, pero te sugiero que busques alternativas de diseño «siempre trata de ser lo mas simple posible| no combines en lo posible css y html | no uses Javascript si no es necesario | jQuery es bueno pero deberías aprender un poco de javascript»
Con esto logro exactamente tu formulario:
Código HTML:
Ver original<form action="" method="POST"> Nombre
<input type="text" id="c_name" name="name" required="required"/> Email
<input type="email" id="c_email" name="email" required="required"/> <select id="c_asunto" name="asunto" class="c_input" onChange="mostrar(this.value);"> <option selected="selected" value="Motivo" disabled="disabled">Motivo
</option> <option value="Formatear PC de Sobremesa">PC de Sobremesa
</option> <input type="text" id="c_otroasunto" name="otroasunto" placeholder="otro motivo"/> Mensaje
<input type="button" id="c_enviar" value="Enviar" />
Claro esta que la disposición la haces tu mediante css. deje algunas de las funciones que realmente parecen útiles. Los campos se validan con el atributo required excepto otroasunto que solo es requerido una vez es visible, osea cuando la opción Otros motivos es seleccionada.
Código Javascript
:
Ver originalfunction mostrar(id) {
var campo = document.getElementById("c_otroasunto");
if (id == "Otros motivos") {
campo.setAttribute("required", "required");
campo.removeAttribute("hidden");
} else {
campo.setAttribute("hidden", "hidden");
campo.removeAttribute("required");
}
}
Espero que esto solucione tu problema te pongo un ejemplo para copypaste maquetado un poco con css (solo para que sea mas visual).
Código HTML:
Ver original<!DOCTYPE html>
<!--OJO EL ESTILO LO DEFINES TU-->
form {
width: 30%;
}
input, textarea, select {
width: 100%
}
<!--FINALIZA EL ESTILO-->
<script type="text/javascript"> function mostrar(id) {
var campo = document.getElementById("c_otroasunto");
if (id == "Otros motivos") {
campo.setAttribute("required", "required");
campo.removeAttribute("hidden");
} else {
campo.setAttribute("hidden", "hidden");
campo.removeAttribute("required");
}
}
<form action="" method="POST"> Nombre
<input type="text" id="c_name" name="name" required="required"/> Email
<input type="email" id="c_email" name="email" required="required"/> <select id="c_asunto" class="c_input" name="asunto" onchange="mostrar(this.value);"> <option selected="selected" value="Motivo" disabled="disabled">Motivo
</option> <option value="Formatear PC de Sobremesa">PC de Sobremesa
</option> <input type="text" id="c_otroasunto" name="otroasunto" placeholder="otro motivo" hidden="hidden"/> Mensaje
<textarea id="c_msg" name="mensaje" placeholder="mensaje..." required="required"></textarea> <input type="submit" id="c_enviar" value="Enviar"/>