Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Formulário sem botão de enviar
3 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre HTML e BBCode
Página 1 de 1
Formulário sem botão de enviar
Detalhes da questão
Endereço do fórum: http://adotenaocompre.forumeiros.com
Versão do fórum: PhpBB3
Descrição
Olá pessoal, boa noite! Eu criei um formulário através do gerador do Solkis, e achei muito bom. O único problema é que o botão de enviar o tópico não aparece, e também não há a opção para o usuário digitar o título do tópico.
Alguém poderia me ajudar a colocar esse botão e a opção para o usuário digitar o título do tópico?
Obrigado desde já!
Segue o código que o gerador retornou:
- Código:
<script type="text/javascript" src="http://jscolor.com/jscolor/jscolor.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="http://ajuda.forumeiros.com/29110.js"></script>
<script src="http://ajuda.forumeiros.com/28074.js"></script>
<style>
#generated_form .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -600px; width: 60px; height: 20px;}
#generated_form .more { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px 2px; width: 12px; height: 20px; cursor:pointer;}
#generated_form .image .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -548px; width: 60px; height: 20px;}
#generated_form .remove { float: left;background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px -286px;padding-left: 16px;width: 12px; height: 20px; cursor:pointer;position: relative;top:3px;}
#generated_form .image { width: 300px; }
#generated_form h1 {
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 2em;
font-weight: 400;
margin: .8em 0 .2em;
}
#generated_form dl {
margin-bottom: 10px;
font-size: 1.1em;
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
}
#generated_form dt {
width: 30%;
padding-top: 5px;
border: none;
float: left;
}
#generated_form dd {
padding: 5px;
padding-right: 5px;
margin-left: 30%;
vertical-align: middle;
}
#generated_form dl:hover dt {
color: #666;
}
#generated_form input {
font-family: "Lucida Sans Unicode", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
color: #333333;
padding: 2px;
vertical-align: middle;
padding-left: 4px;
}
#generated_form input[disabled] {
background-color:#ddd;
cursor:pointer;
}
#generated_form select {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
font-style: normal;
cursor: default;
vertical-align: middle;
width:auto;
max-width:100%;/* Bug IE */
padding: 1px;
}
#generated_form textarea {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
width: 300px;
height: 100px;
padding: 2px;
padding-left: 4px;
cursor: text;
}
#generated_form input[type=text], #generated_form input[type=fields_list] {
width: 300px;
cursor: text;
}
</style>
<form onsubmit="submit_form();" action="/posting.forum" id="generated_form" method="post" enctype="multipart/form-data">
<input type="hidden" name="form_mode" value="0">
<h1 data-type="field">Solicitação de Perfil de Protetor<br></h1>
<dl><dt><p>Qual é o seu endereço de protetor?</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Se for o mesmo que você informou no seu perfil, não é necessário colocar aqui novamente</dd>
</dl>
<dl>
<dt><p>Como será a entrega do(s) cão(es) ao adotante?</p><br></dt>
<dd><select id="field2" data-type="field"><option value="Eu os levarei para o adotante">Eu os levarei para o adotante</option><option value=" O adotante terá que vir buscar"> O adotante terá que vir buscar</option></select></dd>
</dl>
<dl><dt><p>Quantos cães você tem disponível para adoção?</p><br></dt>
<dd><input id="field3" min="1" max="10" data-type="field" value="" step="1" type="number"></dd>
</dl>
<dl><dt><p>Fotos da sua residência</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Este campo é opcional, mas é interessante que você coloque fotos da sua
casa para verificarmos<br> se você está apto para ser protetor (se já
colocou no seu perfil, não é necessário colocar aqui novamente).<br> Você pode
colocar fotos da frente, do interior da casa e do pátio (se houver). Se
concordar em postar as fotos, <br>hospede em um site de upload e coloque o link aqui (recomendamos
o https://uploaddeimagens.com.br/)</dd>
</dl>
<input name="f" value="13" type="hidden">
<input template="Solicitação de Perfil de Protetor" name="subject" value="O script não enviou o título" type="hidden">
<input template="" name="description" value="O script não enviou a descrição" type="hidden">
<textarea name="message" style="display:none">
Última edição por Otávio757 em 03.07.16 22:27, editado 1 vez(es)
Re: Formulário sem botão de enviar
Saudações!
Veja se resulta agora:
Até mais.
Veja se resulta agora:
- Código:
<script type="text/javascript" src="http://jscolor.com/jscolor/jscolor.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="http://ajuda.forumeiros.com/29110.js"></script>
<script src="http://ajuda.forumeiros.com/28074.js"></script>
<style>
#generated_form .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -600px; width: 60px; height: 20px;}
#generated_form .more { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px 2px; width: 12px; height: 20px; cursor:pointer;}
#generated_form .image .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -548px; width: 60px; height: 20px;}
#generated_form .remove { float: left;background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px -286px;padding-left: 16px;width: 12px; height: 20px; cursor:pointer;position: relative;top:3px;}
#generated_form .image { width: 300px; }
#generated_form h1 {
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 2em;
font-weight: 400;
margin: .8em 0 .2em;
}
#generated_form dl {
margin-bottom: 10px;
font-size: 1.1em;
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
}
#generated_form dt {
width: 30%;
padding-top: 5px;
border: none;
float: left;
}
#generated_form dd {
padding: 5px;
padding-right: 5px;
margin-left: 30%;
vertical-align: middle;
}
#generated_form dl:hover dt {
color: #666;
}
#generated_form input {
font-family: "Lucida Sans Unicode", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
color: #333333;
padding: 2px;
vertical-align: middle;
padding-left: 4px;
}
#generated_form input[disabled] {
background-color:#ddd;
cursor:pointer;
}
#generated_form select {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
font-style: normal;
cursor: default;
vertical-align: middle;
width:auto;
max-width:100%;/* Bug IE */
padding: 1px;
}
#generated_form textarea {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
width: 300px;
height: 100px;
padding: 2px;
padding-left: 4px;
cursor: text;
}
#generated_form input[type=text], #generated_form input[type=fields_list] {
width: 300px;
cursor: text;
}
</style>
<form onsubmit="submit_form();" action="/posting.forum" id="generated_form" method="post" enctype="multipart/form-data">
<input type="hidden" name="form_mode" value="0">
<h1 data-type="field">Solicitação de Perfil de Protetor<br></h1>
<dl><dt><p>Titulo do tópico:</p><br></dt> <input class="required" value="" minlength="3" maxlength="30" id="nick" type="text">
<dl><dt><p>Qual é o seu endereço de protetor?</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Se for o mesmo que você informou no seu perfil, não é necessário colocar aqui novamente</dd>
</dl>
<dl>
<dt><p>Como será a entrega do(s) cão(es) ao adotante?</p><br></dt>
<dd><select id="field2" data-type="field"><option value="Eu os levarei para o adotante">Eu os levarei para o adotante</option><option value=" O adotante terá que vir buscar"> O adotante terá que vir buscar</option></select></dd>
</dl>
<dl><dt><p>Quantos cães você tem disponível para adoção?</p><br></dt>
<dd><input id="field3" min="1" max="10" data-type="field" value="" step="1" type="number"></dd>
</dl>
<dl><dt><p>Fotos da sua residência</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Este campo é opcional, mas é interessante que você coloque fotos da sua
casa para verificarmos<br> se você está apto para ser protetor (se já
colocou no seu perfil, não é necessário colocar aqui novamente).<br> Você pode
colocar fotos da frente, do interior da casa e do pátio (se houver). Se
concordar em postar as fotos, <br>hospede em um site de upload e coloque o link aqui (recomendamos
o https://uploaddeimagens.com.br/)</dd>
</dl>
<input name="f" value="13" type="hidden">
<input template="Solicitação de Perfil de Protetor" name="subject" value="O script não enviou o título" type="hidden">
<input template="" name="description" value="O script não enviou a descrição" type="hidden">
<textarea name="message" style="display:none">
<p>
<br /> <span style="font-family: Verdana; font-size: 13px;"><br /> <textarea name="sform_motivo" cols="3" rows="3" id="sform_motivo"></textarea> </span><br /> <em></em><br /> <br /> <em></em><br /> <input value="" name="description" type="hidden" /><input value="newtopic" name="mode" type="hidden" /><input value="0" name="lt" type="hidden" /><input value="124" name="f" type="hidden" /><br /><input name="post" class="button1" type="submit" value="Enviar" />
</p>
Até mais.
Re: Formulário sem botão de enviar
Sennior escreveu:Saudações!
Veja se resulta agora:
- Código:
<script type="text/javascript" src="http://jscolor.com/jscolor/jscolor.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="http://ajuda.forumeiros.com/29110.js"></script>
<script src="http://ajuda.forumeiros.com/28074.js"></script>
<style>
#generated_form .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -600px; width: 60px; height: 20px;}
#generated_form .more { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px 2px; width: 12px; height: 20px; cursor:pointer;}
#generated_form .image .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -548px; width: 60px; height: 20px;}
#generated_form .remove { float: left;background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px -286px;padding-left: 16px;width: 12px; height: 20px; cursor:pointer;position: relative;top:3px;}
#generated_form .image { width: 300px; }
#generated_form h1 {
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 2em;
font-weight: 400;
margin: .8em 0 .2em;
}
#generated_form dl {
margin-bottom: 10px;
font-size: 1.1em;
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
}
#generated_form dt {
width: 30%;
padding-top: 5px;
border: none;
float: left;
}
#generated_form dd {
padding: 5px;
padding-right: 5px;
margin-left: 30%;
vertical-align: middle;
}
#generated_form dl:hover dt {
color: #666;
}
#generated_form input {
font-family: "Lucida Sans Unicode", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
color: #333333;
padding: 2px;
vertical-align: middle;
padding-left: 4px;
}
#generated_form input[disabled] {
background-color:#ddd;
cursor:pointer;
}
#generated_form select {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
font-style: normal;
cursor: default;
vertical-align: middle;
width:auto;
max-width:100%;/* Bug IE */
padding: 1px;
}
#generated_form textarea {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
width: 300px;
height: 100px;
padding: 2px;
padding-left: 4px;
cursor: text;
}
#generated_form input[type=text], #generated_form input[type=fields_list] {
width: 300px;
cursor: text;
}
</style>
<form onsubmit="submit_form();" action="/posting.forum" id="generated_form" method="post" enctype="multipart/form-data">
<input type="hidden" name="form_mode" value="0">
<h1 data-type="field">Solicitação de Perfil de Protetor<br></h1>
<dl><dt><p>Titulo do tópico:</p><br></dt> <input class="required" value="" minlength="3" maxlength="30" id="nick" type="text">
<dl><dt><p>Qual é o seu endereço de protetor?</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Se for o mesmo que você informou no seu perfil, não é necessário colocar aqui novamente</dd>
</dl>
<dl>
<dt><p>Como será a entrega do(s) cão(es) ao adotante?</p><br></dt>
<dd><select id="field2" data-type="field"><option value="Eu os levarei para o adotante">Eu os levarei para o adotante</option><option value=" O adotante terá que vir buscar"> O adotante terá que vir buscar</option></select></dd>
</dl>
<dl><dt><p>Quantos cães você tem disponível para adoção?</p><br></dt>
<dd><input id="field3" min="1" max="10" data-type="field" value="" step="1" type="number"></dd>
</dl>
<dl><dt><p>Fotos da sua residência</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Este campo é opcional, mas é interessante que você coloque fotos da sua
casa para verificarmos<br> se você está apto para ser protetor (se já
colocou no seu perfil, não é necessário colocar aqui novamente).<br> Você pode
colocar fotos da frente, do interior da casa e do pátio (se houver). Se
concordar em postar as fotos, <br>hospede em um site de upload e coloque o link aqui (recomendamos
o https://uploaddeimagens.com.br/)</dd>
</dl>
<input name="f" value="13" type="hidden">
<input template="Solicitação de Perfil de Protetor" name="subject" value="O script não enviou o título" type="hidden">
<input template="" name="description" value="O script não enviou a descrição" type="hidden">
<textarea name="message" style="display:none">
<p>
<br /> <span style="font-family: Verdana; font-size: 13px;"><br /> <textarea name="sform_motivo" cols="3" rows="3" id="sform_motivo"></textarea> </span><br /> <em></em><br /> <br /> <em></em><br /> <input value="" name="description" type="hidden" /><input value="newtopic" name="mode" type="hidden" /><input value="0" name="lt" type="hidden" /><input value="124" name="f" type="hidden" /><br /><input name="post" class="button1" type="submit" value="Enviar" />
</p>
Até mais.
Oi Sennior, obrigado pela ajuda! Apareceu o botão e o campo do título do tópico, mas quando cliquei em Enviar apareceu a mensagem: "Desculpa, mas apenas podem colocar tópicos neste fórum."
O que pode ter ocorrido?
Re: Formulário sem botão de enviar
Olá Otavio, acesse:
Até mais.
Escolha o fórum cujas permissões pretende alterar e carregue em . Depois basta marcar/desmarcar os campos pretendidos e salvar.Painel de controle -> Geral -> Fórum -> Categorias e fóruns
Até mais.
Re: Formulário sem botão de enviar
Oi while, obrigado pela resposta, mas acho que o problema não está relacionado com as permissões, mas na implementação do botão Enviar.
Re: Formulário sem botão de enviar
Estive pensando aqui, talvez o problema pode estar no meu código Javascript, segue abaixo:
Coloquei o investimento em todas as páginas
- Código:
jQuery(document).ready(function() { jQuery('a[href^="/post?f=13&mode=newtopic"]').attr('href', 'http://adotenaocompre.forumeiros.com/h1-formulario-para-solicitacacao-de-perfil-de-protetor'); });
Coloquei o investimento em todas as páginas
Re: Formulário sem botão de enviar
Boas!
Troque teu formulário pelo abaixo:
Depois troque o JavaScript pelo abaixo e coloque investimento em todas as páginas:
Resulta?
Até mais.
Troque teu formulário pelo abaixo:
- Código:
<script type="text/javascript" src="http://jscolor.com/jscolor/jscolor.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="http://ajuda.forumeiros.com/29110.js"></script>
<script src="http://ajuda.forumeiros.com/28074.js"></script>
<style>
#generated_form .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -600px; width: 60px; height: 20px;}
#generated_form .more { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px 2px; width: 12px; height: 20px; cursor:pointer;}
#generated_form .image .part { background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat -235px -548px; width: 60px; height: 20px;}
#generated_form .remove { float: left;background: url(http://i46.tinypic.com/2wrdc42.jpg) no-repeat 0px -286px;padding-left: 16px;width: 12px; height: 20px; cursor:pointer;position: relative;top:3px;}
#generated_form .image { width: 300px; }
#generated_form h1 {
font-family: Verdana,Arial,Helvetica,sans-serif;
font-size: 2em;
font-weight: 400;
margin: .8em 0 .2em;
}
#generated_form dl {
margin-bottom: 10px;
font-size: 1.1em;
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
}
#generated_form dt {
width: 30%;
padding-top: 5px;
border: none;
float: left;
}
#generated_form dd {
padding: 5px;
padding-right: 5px;
margin-left: 30%;
vertical-align: middle;
}
#generated_form dl:hover dt {
color: #666;
}
#generated_form input {
font-family: "Lucida Sans Unicode", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
color: #333333;
padding: 2px;
vertical-align: middle;
padding-left: 4px;
}
#generated_form input[disabled] {
background-color:#ddd;
cursor:pointer;
}
#generated_form select {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
font-weight: normal;
font-style: normal;
cursor: default;
vertical-align: middle;
width:auto;
max-width:100%;/* Bug IE */
padding: 1px;
}
#generated_form textarea {
font-family: "Lucida Grande", Verdana, Helvetica, Arial, sans-serif;
width: 300px;
height: 100px;
padding: 2px;
padding-left: 4px;
cursor: text;
}
#generated_form input[type=text], #generated_form input[type=fields_list] {
width: 300px;
cursor: text;
}
</style>
<form onsubmit="submit_form();" action="/posting.forum" id="generated_form" method="post" enctype="multipart/form-data">
<input type="hidden" name="form_mode" value="0">
<h1 data-type="field">Solicitação de Perfil de Protetor<br></h1>
<dl><dt><p>Titulo do tópico:</p><br></dt> <input class="required" value="" minlength="3" maxlength="30" id="nick" type="text">
<dl><dt><p>Qual é o seu endereço de protetor?</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Se for o mesmo que você informou no seu perfil, não é necessário colocar aqui novamente</dd>
</dl>
<dl>
<dt><p>Como será a entrega do(s) cão(es) ao adotante?</p><br></dt>
<dd><select id="field2" data-type="field"><option value="Eu os levarei para o adotante">Eu os levarei para o adotante</option><option value=" O adotante terá que vir buscar"> O adotante terá que vir buscar</option></select></dd>
</dl>
<dl><dt><p>Quantos cães você tem disponível para adoção?</p><br></dt>
<dd><input id="field3" min="1" max="10" data-type="field" value="" step="1" type="number"></dd>
</dl>
<dl><dt><p>Fotos da sua residência</p><br></dt>
<dd><textarea name="field1" rows="7" cols="7"></textarea><br>Este campo é opcional, mas é interessante que você coloque fotos da sua
casa para verificarmos<br> se você está apto para ser protetor (se já
colocou no seu perfil, não é necessário colocar aqui novamente).<br> Você pode
colocar fotos da frente, do interior da casa e do pátio (se houver). Se
concordar em postar as fotos, <br>hospede em um site de upload e coloque o link aqui (recomendamos
o https://uploaddeimagens.com.br/)</dd>
</dl>
<input template="Solicitação de Perfil de Protetor" name="subject" value="O script não enviou o título" type="hidden">
<input template="" name="description" value="O script não enviou a descrição" type="hidden">
<textarea name="message" style="display:none">
<p>
<br /> <span style="font-family: Verdana; font-size: 13px;"><br /> <textarea name="sform_motivo" cols="3" rows="3" id="sform_motivo"></textarea> </span><br /> <em></em><br /> <br /> <em></em><br /> <input value="" name="description" type="hidden" /><input value="newtopic" name="mode" type="hidden" /><input value="0" name="lt" type="hidden" /><input value="13" name="f" type="hidden" /><br /><input name="post" class="button1" type="submit" value="Enviar" />
</p>
Depois troque o JavaScript pelo abaixo e coloque investimento em todas as páginas:
- Código:
$(function(){
$('a[href^="/post?f=13&mode=newtopic"]').attr('href', '/h1-');
});
Resulta?
Até mais.
Re: Formulário sem botão de enviar
Olá Sennior, obrigado novamente pela ajuda!
Com esse código o tópico foi postado, porém apareceu o seguinte conteúdo no lugar da mensagem:
Segue o link do tópico: http://adotenaocompre.forumeiros.com/t2-solicitacao-de-perfil-de-protetor#2
*Edit:
Consegui resolver o problema!
Troquei as propriedades "name" por "id", e acessei ela via Javascript pelo comando document.getElementById("ID DO CAMPO").value; colocando o valor dentro de uma variável.
Aí depois utilizei os JQuerys jQuery('[name="message"]').val( 'VALOR DA MENSAGEM OU VARIÁVEL' ); e jQuery('[name="subject"]').val( 'VALOR DO TITULO OU VARIÁVEL' ); com a ajuda do tutorial daqui da Forumeiros mesmo.
Para tanto, utilizei a propriedade onClick no botão enviar.
Com esse código o tópico foi postado, porém apareceu o seguinte conteúdo no lugar da mensagem:
- Código:
<p>
<br /> <span style="font-family: Verdana; font-size: 13px;"><br /> <textarea name="sform_motivo" cols="3" rows="3" id="sform_motivo">
Segue o link do tópico: http://adotenaocompre.forumeiros.com/t2-solicitacao-de-perfil-de-protetor#2
*Edit:
Consegui resolver o problema!
Troquei as propriedades "name" por "id", e acessei ela via Javascript pelo comando document.getElementById("ID DO CAMPO").value; colocando o valor dentro de uma variável.
Aí depois utilizei os JQuerys jQuery('[name="message"]').val( 'VALOR DA MENSAGEM OU VARIÁVEL' ); e jQuery('[name="subject"]').val( 'VALOR DO TITULO OU VARIÁVEL' ); com a ajuda do tutorial daqui da Forumeiros mesmo.
Para tanto, utilizei a propriedade onClick no botão enviar.
Tópicos semelhantes
» Erro ao enviar formulário
» Problema com botão enviar do formulário
» Botão enviar formulario nao funciona
» Botão Enviar no formulário não funciona
» Enviar MP por Ajax
» Problema com botão enviar do formulário
» Botão enviar formulario nao funciona
» Botão Enviar no formulário não funciona
» Enviar MP por Ajax
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre HTML e BBCode
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos